point、box、lseg、line、path、polygon、circleなどの幾何型には 多くの既存関数と演算子があります。
Table 4-15. 幾何演算子
演算子 | 説明 | 使用方法 |
---|---|---|
+ | 移行 | box '((0,0),(1,1))' + point '(2.0,0)' |
- | 移行 | box '((0,0),(1,1))' - point '(2.0,0)' |
* | 縮尺/回転 | box '((0,0),(1,1))' * point '(2.0,0)' |
/ | 縮尺/回転 | box '((0,0),(2,2))' / point '(2.0,0)' |
# | 交わり | '((1,-1),(-1,1))' # '((1,1),(-1,-1))' |
# | 多角形内の点の数 | # '((1,0),(0,1),(-1,0))' |
## | 近接に最も近い点 | point '(0,0)' ## lseg '((2,0),(0,2))' |
&& | 重なるか否か | box '((0,0),(1,1))' && box '((0,0),(2,2))' |
&< | 左重なりか否か | box '((0,0),(1,1))' &< box '((0,0),(2,2))' |
&> | 右重なりか否か | box '((0,0),(3,3))' &> box '((0,0),(2,2))' |
<-> | 距離 | circle '((0,0),1)' <-> circle '((5,0),1)' |
<< | 左か否か | circle '((0,0),1)' << circle '((5,0),1)' |
<^ | 下か否か | circle '((0,0),1)' <^ circle '((0,5),1)' |
>> | 右か否か | circle '((5,0),1)' >> circle '((0,0),1)' |
>^ | 上か否か | circle '((0,5),1)' >^ circle '((0,0),1)' |
?# | 交わる、または重なる | lseg '((-1,0),(1,0))' ?# box '((-2,-2),(2,2))'; |
?- | 水平か否か | point '(1,0)' ?- point '(0,0)' |
?-| | 垂直か否か | lseg '((0,0),(0,1))' ?-| lseg '((0,0),(1,0))' |
@-@ | 長さ、または円周 | @-@ path '((0,0),(1,0))' |
?| | 直立か否か | point '(0,1)' ?| point '(0,0)' |
?|| | 平行か否か | lseg '((-1,0),(1,0))' ?|| lseg '((-1,2),(1,2))' |
@ | 含まれている | point '(1,1)' @ circle '((0,0),2)' |
@@ | 中心 | @@ circle '((0,0),10)' |
~= | 等しい | polygon '((0,0),(1,1))' ~= polygon '((1,1),(0,0))' |
Table 4-16. 幾何関数
関数 | 返り値 | 説明 | 例 |
---|---|---|---|
area(object) | double precision | 面積 | area(box '((0,0),(1,1))') |
box(box, box) | box | 長方形の交わり | box(box '((0,0),(1,1))',box '((0.5,0.5),(2,2))') |
center(object) | point | 中心 | center(box '((0,0),(1,2))') |
diameter(circle) | double precision | 直径 | diameter(circle '((0,0),2.0)') |
height(box) | double precision | 長方形の縦の長さ | height(box '((0,0),(1,1))') |
isclosed(path) | boolean | 閉じたパスか否か | isclosed(path '((0,0),(1,1),(2,0))') |
isopen(path) | boolean | 開いたパスか否か | isopen(path '[(0,0),(1,1),(2,0)]') |
length(object) | double precision | 長さ | length(path '((-1,0),(1,0))') |
pclose(path) | path | 閉じたパスに変換 | popen(path '[(0,0),(1,1),(2,0)]') |
npoint(path) | int4 | 点の数 | npoints(path '[(0,0),(1,1),(2,0)]') |
popen(path) | path | 開いたパスに変換 | popen(path '((0,0),(1,1),(2,0))') |
radius(circle) | double precision | 半径 | radius(circle '((0,0),2.0)') |
width(box) | double precision | 横の長さ | width(box '((0,0),(1,1))') |
Table 4-17. 幾何型変換関数
関数 | 返り値 | 説明 | 例 |
---|---|---|---|
box(circle) | box | 円を長方形に変換 | box(circle '((0,0),2.0)') |
box(point, point) | box | 点を長方形に変換 | box(point '(0,0)', point '(1,1)') |
box(polygon) | box | 多角形を長方形に変換 | box(polygon '((0,0),(1,1),(2,0))') |
circle(box) | circle | 円に変換 | circle(box '((0,0),(1,1))') |
circle(point, double precision) | circle | 点を円に変換 | circle(point '(0,0)', 2.0) |
lseg(box) | lseg | 長方形の対角線を線分に変換 | lseg(box '((-1,0),(1,0))') |
lseg(point, point) | lseg | 点を線分に変換 | lseg(point '(-1,0)', point '(1,0)') |
path(polygon) | point | 多角形をパスに変換 | path(polygon '((0,0),(1,1),(2,0))') |
point(circle) | point | 円の中心 | point(circle '((0,0),2.0)') |
point(lseg, lseg) | point | 線分の交わり | point(lseg '((-1,0),(1,0))', lseg '((-2,-2),(2,2))') |
point(polygon) | point | 多角形の中心 | point(polygon '((0,0),(1,1),(2,0))') |
polygon(box) | polygon | 12点の多角形 | polygon(box '((0,0),(1,1))') |
polygon(circle) | polygon | 12点の多角形 | polygon(circle '((0,0),2.0)') |
polygon(npts, circle) | polygon | npts多角形 | polygon(12, circle '((0,0),2.0)') |
polygon(path) | polygon | パスを多角形に変換 | polygon(path '((0,0),(1,1),(2,0))') |