几何类型表示二维的平面物体.最基本的类型:点,是其他类型的基础.
Table 3-16. 几何类型
几何类型 | 存储空间 | 表现形式 | 描述 |
---|---|---|---|
point | 16 字节 | (x,y) | 空间中一点 |
line | 32 字节 | ((x1,y1),(x2,y2)) | (无穷)直线 |
lseg | 32 字节 | ((x1,y1),(x2,y2)) | (有限)线段 |
box | 32 字节 | ((x1,y1),(x2,y2)) | 长方形 |
path | 4+32n 字节 | ((x1,y1),...) | 闭合路径(与多边形类似) |
path | 4+32n 字节 | [(x1,y1),...] | 开放路径 |
polygon | 4+32n 字节 | ((x1,y1),...) | 多边形(与闭合路径相似) |
circle | 24 字节 | <(x,y),r> | 圆(圆心和半径) |
我们有一系列丰富的函数和操作符可用来进行各种几何计算, 如度量,转换,旋转和计算相交等。
点是集合类型的基本二维构造单位。
用下面语法描述 point:
( x , y ) x , y这里的参数是
是用浮点数表示的点的 x 坐标。
是用浮点数表示的点的 y 坐标。
线段 (lseg)是用一对点来代表的.
lseg 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2这里的参数是
是线段的端点。
方是用一对对角点来表示的。
box 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2这里的参数是
是方形的一对对角点。
方的输出使用第一种语法.在输入时将按先右上角后左下角的顺序重新排列. 你也可以输入其他的一对对角点. 但输入时将先从输入中计算出左下角和右上角然后再存储.
路径由一系列连接的点组成.路径可能是"开放"的, 也就是第一个点和最后一个点没有连接,也可能是"闭合" 的,这时第一个和最后一个点连接起来.我们提供了函数 popen(p) 和 pclose(p) 来强制路径是开放的还 是闭合的,可以用函数 isopen(p) 和 isclosed(p) 来在查询中选择是那种.
path 用下面语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) ) [ ( x1 , y1 ) , ... , ( xn , yn ) ] ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn这里的参数是
组成路径的线段的端点。 前面的("[")表明一个开放的路径,而前面的("(")表明一个闭合的路径。
路径的输出使用第一种语法输出.
多边形由一系列点代表.多边形可以认为与闭合路径一样, 但是存储方式不一样而且有自己的一套支持过程/函数.
polygon 用下列语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn这里的参数是
组成多边形边界的线段的端点。
多边形输出使用第一种语法.
圆由一个圆心和一个半径代表.
circle 用下面语法表示:
< ( x , y ) , r > ( ( x , y ) , r ) ( x , y ) , r x , y , r这里的参数是
圆心
圆的半径
圆的输出用第一种格式.