| 操作符 |
功能描述 |
示例 |
结果 |
| + |
转换平移 |
box '((0,0),(1,1))' + point '(2.0,0)' |
(3,1),(2,0) |
| – |
转换平移 |
box '((0,0),(1,1))' – point '(2.0,0)' |
(-1,1),(-2,0) |
| * |
伸展/旋转 |
box '((0,0),(1,1))' * point '(2.0,0)' |
(2,2),(0,0) |
| / |
伸展/旋转 |
box '((0,0),(2,2))' / point '(2.0,0)' |
(1,1),(0,0) |
| # |
两个图形交接面 |
box '((1,-1),(-1,1))' # box '((1,1),(-1,-1))' |
(1,1),(-1,-1) |
| @-@ |
图形的长度或者周长 |
@-@ path '((0,0),(1,0))' |
2 |
| @@ |
中心 |
@@ circle '((0,0),10)' |
(0,0) |
| ## |
第一个图形与第二个图形最近的点 |
point '(0,0)' ## lseg '((2,0),(0,2))' |
(1,1) |
| <-> |
图形之间的距离 |
circle '((0,0),2)' <-> circle '((4,0),1)' |
1 |
| && |
两个图形是否相交 |
box '((0,0),(1,2))' && box '((0,0),(2,3))' |
t |
| << |
图形1是否严格在图形2的左边 |
circle '((0,0),1)' << circle '((5,0),1)' |
t |
| >> |
图形1是否严格在图形2的右边 |
circle '((5,0),1)' >> circle '((0,0),1)' |
t |
| &< |
图形1的最右边是否不超过图形2的最右边 |
box '((0,0),(1,1))' &< box '((0,0),(2,2))' |
t |
| &> |
图形1的最右边是否不超过图形2的最左边 |
box '((0,0),(3,3))' &> box '((0,0),(2,2))' |
t |
| <<| |
图形1是否严格在图形2下边 |
box '((0,0),(2,2))' <<| box '((4,5),(6,6))' |
t |
| |>> |
图形1是否严格在图形2上边 |
box '((5,6),(7,7))' |>> box '((0,0),(4,4))' |
t |
| <^ |
图形1是否低于图形2(允许接触) |
box '((5,6),(7,7))' <^ box '((0,0),(4,4))' |
f |
| >^ |
图形1是否高于图形2(允许接触) |
box '((5,6),(7,7))' >^ box '((0,0),(4,4))' |
t |
| ?# |
相交 |
lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))' |
t |
| ?- |
是否水平 |
?- lseg '((-1,0),(1,0))' |
t |
| ?- |
两个图形水平对齐 |
point '(1,0)' ?- point '(0,0)' |
t |
| ?| |
是否垂直 |
?| lseg '((-1,0),(1,0))' |
f |
| ?| |
两个图形是否垂直对齐 |
point '(1,2)' ?| point '(1,1)' |
t |
| ?-| |
两条线是否垂直 |
lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' |
t |
| ?|| |
两条线是否平行 |
lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' |
t |
| @> |
图形1是否包含图形2 |
circle '((0,0),2)' @> circle '((0,0),1)'' |
t |
| <@ |
图形1是否被图形2包含 |
point '(1,1)' <@ circle '((0,0),2)' |
t |
| ~= |
是否相同 |
polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' |
t |
| 函数 |
返回值类型 |
描述 |
示例 |
结果 |
| area(object) |
double precision |
面积 |
area(box '((0,0),(1,2))') |
2 |
| center(object) |
point |
中心点 |
center(box '((0,0),(1,2))') |
(0.5,1) |
| diameter(circle) |
double precision |
圆的直径 |
diameter(circle '((0,0),2.0)') |
4 |
| height(box) |
double precision |
高 |
height(box '((0,0),(2,3))') |
3 |
| isclosed(path) |
boolean |
图形是否闭合 |
isclosed(path '((0,0),(1,1),(2,0))') |
t |
| isopen(path) |
boolean |
图形是否开放 |
isopen(path '[(0,0),(1,1),(2,0)]') |
t |
| length(object) |
double precision |
图形的长度 |
length(path '((-1,0),(1,0))') |
2 |
| npoints(path) |
int |
图形的顶点数 |
npoints(path '[(0,0),(1,1),(2,0)]') |
3 |
| npoints(polygon) |
int |
图形的顶点数 |
npoints(polygon '((1,1),(0,0))') |
2 |
| radius(circle) |
double precision |
圆的半径 |
radius(circle '((0,0),2.0)') |
2 |
| width(box) |
double precision |
水平长度 |
width(box '((0,0),(3,2))') |
3 |
| 函数 |
返回值类型 |
描述 |
示例 |
返回值 |
| box(circle) |
box |
圆转为矩形 |
box(circle '((0,0),3.0)') |
(2.12132034355964,2.12132034355964),(-2.12132034355964,-2.12132034355964) (1 row) |
| box(point, point) |
box |
点转为矩形 |
box(point '(0,0)', point '(2,2)') |
(2,2),(0,0) |
| box(polygon) |
box |
多边形转为矩形 |
box(polygon '((0,0),(1,1),(2,0))') |
(2,1),(0,0) |
| circle(box) |
circle |
矩形转为圆 |
circle(box '((0,0),(2,2))') |
<(1,1),1.4142135623731> |
| circle(point, double precision) |
circle |
中心和半径转为圆 |
circle(point '(0,0)', 3.0) |
<(0,0),3> |
| circle(polygon) |
circle |
多边形转为圆 |
circle(polygon '((0,0),(1,1),(2,0))') |
<(1,0.333333333333333),0.924950591148529> |
| lseg(box) |
lseg |
矩形转为线段 |
lseg(box'((-1,0),(1,0))') |
[(1,0),(-1,0)] |
| lseg(point, point) |
lseg |
多点转为线段 |
lseg(point '(-1,0)', point '(1,0)') |
[(-1,0),(1,0)] |
| path(polygon) |
path |
polygon to path |
path(polygon '((0,0),(1,1),(2,0))') |
((0,0),(1,1),(2,0)) |
| point(double precision, double precision) |
point |
construct point |
point(23.4, -44.5) |
(23.4,-44.5) |
| point(box) |
point |
图形中心 |
point(box '((-1,0),(1,0))') |
(0,0) |
| point(circle) |
point |
圆的中心 |
point(circle '((0,0),2.0)') |
(0,0) |
| point(lseg) |
point |
线段的中心 |
point(lseg '((-2,0),(2,0))') |
(0,0) |
| point(polygon) |
point |
多边形的中心 |
point(polygon '((0,0),(1,1),(2,0))') |
(1,0.333333333333333) |
| polygon(box) |
polygon |
矩形转为四个点的多边形 |
polygon(box '((0,0),(1,1))') |
((0,0),(0,1),(1,1),(1,0)) |
| polygon(circle) |
polygon |
圆形转为12个点的多边形 |
polygon(circle '((0,0),2.0)') |
– |
| polygon(npts, circle) |
polygon |
圆形转为 n 个点的多边形 |
polygon(12, circle '((0,0),2.0)') |
((-2,0),(-0.618033988749895,1.90211303259031),(1.61803398874989,1.17557050458495),(1.6180339887499,-1.17557050458495),(-0.618033988749894,-1.90211303259031)) |
| polygon(path) |
polygon |
路径转为多边形 |
polygon(path '((0,0),(1,1),(2,0))') |
((0,0),(1,1),(2,0)) |