幾何類型
本文介紹了幾何類型的定義及相關(guān)語法。
幾何數(shù)據(jù)類型表示二維的空間物體。下表展示了本數(shù)據(jù)庫中可以用的幾何類型。
名字 | 存儲(chǔ)尺寸 | 表示 | 描述 |
| 16字節(jié) | 平面上的點(diǎn) | (x,y) |
| 32字節(jié) | 無限長的線 | {A,B,C} |
| 32字節(jié) | 有限線段 | ((x1,y1),(x2,y2)) |
| 32字節(jié) | 矩形框 | ((x1,y1),(x2,y2)) |
| 16+16n字節(jié) | 封閉路徑(類似于多邊形) | ((x1,y1),...) |
| 16+16n字節(jié) | 開放路徑 | [(x1,y1),...] |
| 40+16n字節(jié) | 多邊形(類似于封閉路徑) | ((x1,y1),...) |
| 24字節(jié) | 圓 | <(x,y),r>(中心點(diǎn)和半徑) |
我們有一系列豐富的函數(shù)和操作符可用來進(jìn)行各種幾何操作, 如縮放、平移、旋轉(zhuǎn)和計(jì)算相交等。
點(diǎn)
點(diǎn)是幾何類型的基本二維構(gòu)造塊。用下面的語法描述point
類型的值:
( x , y )
x , y
其中x
和y
分別是坐標(biāo),都是浮點(diǎn)數(shù)。
點(diǎn)使用第一種語法輸出。
線
線由線性方程A
x + B
y + C
= 0 表示,其中A
和B
都不為零。類型line
的值采用以下形式輸入和輸出:
{ A, B, C }
另外,還可以用下列任一形式輸入:
[ ( x1 , y1 ) , ( x2 , y2 ) ]
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
其中 (``x1``,``y1``)
和 (``x2``,``y2``)
是線上不同的兩點(diǎn)。
線段
線段用一對(duì)線段的端點(diǎn)來表示。lseg
類型的值用下面的語法聲明:
[ ( x1 , y1 ) , ( x2 , y2 ) ]
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
其中(``x1``,``y1``)
和 (``x2``,``y2``)
是線段的端點(diǎn)。
線段使用第一種語法輸出。
方框
方框用其對(duì)角的點(diǎn)對(duì)表示。box
類型的值使用下面的語法指定:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
其中(``x1``,``y1``)
和 (``x2``,``y2``)
是方框的對(duì)角點(diǎn)。
方框使用第二種語法輸出。
在輸入時(shí)可以提供任意兩個(gè)對(duì)角,但是值將根據(jù)需要被按順序記錄為右上角和左下角。
路徑
路徑由一系列連接的點(diǎn)組成。路徑可能是開放的,也就是認(rèn)為列表中第一個(gè)點(diǎn)和最后一個(gè)點(diǎn)沒有被連接起來;也可能是封閉的,這時(shí)認(rèn)為第一個(gè)和最后一個(gè)點(diǎn)被連接起來。
path
類型的值用下面的語法聲明:
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( ( x1 , y1 ) , ... , ( xn , yn ) )
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
其中的點(diǎn)是組成路徑的線段的端點(diǎn)。方括弧([]
)表示一個(gè)開放的路徑,圓括弧(()
)表示一個(gè)封閉的路徑。如第三種到第五種語法所示,當(dāng)最外面的圓括號(hào)被忽略時(shí),路徑將被假定為封閉。
路徑的輸出使用第一種或第二種語法。
多邊形
多邊形由一系列點(diǎn)代表(多邊形的頂點(diǎn))。多邊形和封閉路徑很像,但是存儲(chǔ)方式不一樣而且有自己的一套支持例程。
polygon
類型的值用下列語法聲明:
( ( x1 , y1 ) , ... , ( xn , yn ) )
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
其中的點(diǎn)是組成多邊形邊界的線段的端點(diǎn)。
多邊形的輸出使用第一種語法。
圓
圓由一個(gè)圓心和一個(gè)半徑代表。circle
類型的值用下面的語法指定:
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
其中(``x``,``y``)
是圓心,而r
是圓的半徑。
圓的輸出用第一種語法。