이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다무지개 토토 PostgreSQL : 문서 : 17 : 9.11. 기하학적 기능 및 스포츠 토토버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.11. 기하학적 기능 및 연산자

스포츠 토토 유형포인트, 스포츠 토토, LSEG, line, PATH, PolygonCircle큰 기본 지원 기능 및 스포츠 토토 세트가 있습니다.표 9.33, 표 9.34표 9.35.

주의

동일운영자,~ =, 일반적인 평등 개념을 나타냅니다포인트, 스포츠 토토, PolygonCircle유형. 이러한 유형 중 일부는도 있습니다.=운영자이지만=동등한 비교영역만. 다른 스칼라 비교 스포츠 토토 (<=등) 마찬가지로 이러한 유형의 영역을 비교합니다.

표 9.33. 기하학적 운영자

운영자 설명 example
+ 번역 스포츠 토토 '((0,0), (1,1))' + 포인트 '(2.0,0)'
- 번역 스포츠 토토 '((0,0), (1,1))' - 포인트 '(2.0,0)'
* 스케일링/회전 스포츠 토토 '((0,0), (1,1))' * 포인트 '(2.0,0)'
/ 스케일링/회전 스포츠 토토 '((0,0), (2,2))' / Point '(2.0,0)'
# 교차점의 포인트 또는 상자 스포츠 토토 '((1, -1), (-1,1))' # 스포츠 토토 '((1,1), (-2, -2))'
# 경로 또는 다각형의 점수 # path '((1,0), (0,1), (-1,0))'
@-@ 길이 또는 둘레 @-@ path '((0,0), (1,0))'
@@ 센터 @@ Circle '((0,0), 10)'
## 두 번째 피스포츠 토토에서 첫 번째 피스포츠 토토에 가장 가까운 지점 포인트 '(0,0)'## lseg '((2,0), (0,2))'
<-- 거리 Circle '((0,0), 1)'<- Circle '((5,0), 1)' '
&& 겹치? (공통점이 사실입니다.) box '((0,0), (1,1))'&& box '((0,0), (2,2))'
<< 엄격하게 왼쪽에 있습니까? Circle '((0,0), 1)'<< circle '((5,0), 1)'
엄격하게 맞습니까? Circle '((5,0), 1)' circle '((0,0), 1)'
&< 오른쪽으로 확장되지 않습니까? 스포츠 토토 '((0,0), (1,1))'& <스포츠 토토 '((0,0), (2,2))'
& 왼쪽으로 확장되지 않습니까? box '((0,0), (3,3))'& box '((0,0), (2,2))'
<< | 엄격하게 아래에 있습니까? 스포츠 토토 '((0,0), (3,3))'<< | 스포츠 토토 '((3,4), (5,5))'
| 엄격하게 위에 있습니까? 스포츠 토토 '((3,4), (5,5))'| box '((0,0), (3,3))'
& <| 위에 확장되지 않습니까? box '((0,0), (1,1))'& <| 상자 '(0,0), (2,2))'
| & 아래에 확장되지 않습니까? 스포츠 토토 '((0,0), (3,3))'| & box '((0,0), (2,2))'
<^ 아래입니다 (터치 허용)? Circle '((0,0), 1)'<^ Circle '((0,5), 1)'
^ Circle '((0,5), 1)'^ Circle '((0,0), 1)'
?# 교차? lseg '((-1,0), (1,0))'?# box '((-2, -2), (2,2))'
?- 가로입니까? ?- lseg '((-1,0), (1,0))'
?- 수평으로 정렬됩니까? 포인트 '(1,0)'?- 포인트 '(0,0)'
? | 수직입니까? ? | lseg '((-1,0), (1,0))'
? | 수직으로 정렬되어 있습니까? 포인트 '(0,1)'? | 포인트 '(0,0)'
-| 수직인가? lseg '((0,0), (0,1))'?-| lseg '((0,0), (1,0))'
? || 평행합니까? lseg '((-1,0), (1,0))'? || lseg '((-1,2), (1,2))'
@ 17999_18010 Circle '((0,0), 2)' @ Point '(1,1)'
<@ 포함 또는 켜짐? 포인트 '(1,1)'<@ circle '((0,0), 2)'
~ = 동일? 다각형 '((0,0), (1,1))'~ = 다각형 '((1,1), (0,0))'

Note

PostgreSQL8.2, 격리 연산자@and<@각각.~and@. 이 이름은 여전히 ​​사용할 수 있지만 더 이상 사용되지 않으며 결국 제거됩니다.

표 9.34. 기하학적 기능

기능 반환 유형 설명 example
지역 (개체) 이중 정밀도 지역 면적 (스포츠 토토 '((0,0),))')
센터 ​​(개체) 포인트 센터 센터 ​​(스포츠 토토 '(0,0), (1,2))')
직경 (Circle) 이중 정밀 원의 직경 직경 (원 '((0,0), 2.0)')
높이 (스포츠 토토) 이중 정밀도 상자의 수직 크기 높이 (상자 '((0,0), (1,1))')
isclosed (PATH) 부울 닫힌 경로? isclosed (경로 '((0,0), (1,1), (2,0))')
isopen (PATH) 부울 열린 경로? Isopen (Path '[(0,0), (1,1), (2,0)]')
길이 (개체) 이중 정밀 길이 길이 (경로 '((-1,0), (1,0))')
npoints (PATH) int 포인트 수 npoints (경로 '[(0,0), (1,1), (2,0)]
npoints (Polygon) int 포인트 수 npoints (다각형 '((1,1), (0,0))')
pclose (PATH) PATH 폐쇄로 경로 변환 PCLOSE (PATH '[(0,0), (1,1), (2,0)]')
Popen (PATH) PATH 개방으로 경로 변환 Popen (Path '((0,0), (1,1), (2,0))')
반경 (Circle) 이중 정밀 원의 반경 RADIUS (Circle '((0,0), 2.0)')
너비 (스포츠 토토) 이중 정밀 상자의 수평 크기 너비 (스포츠 토토 '((0,0),))')

표 9.35. 스포츠 토토 유형 변환 기능

기능 반환 유형 설명 example
스포츠 토토 (Circle) 스포츠 토토 서클 to 스포츠 토토 스포츠 토토 (Circle '((0,0), 2.0)')
스포츠 토토 (포인트) 스포츠 토토 빈 상자를 가리키 스포츠 토토 (Point '(0,0)')
스포츠 토토 (포인트, 포인트) 스포츠 토토 상자에 가리 스포츠 토토 (Point '(0,0)', 포인트 '(1,1)')
스포츠 토토 (다각형) 스포츠 토토 POLYGON to 스포츠 토토 스포츠 토토 (다각형 '((0,0), (1,1), (2,0))
bound_스포츠 토토 (스포츠 토토, 스포츠 토토) 스포츠 토토 경계 상자에 상자 bound_스포츠 토토 (box '((0,0), (1,1))', 스포츠 토토 '((3,3), (4,4))')
Circle (스포츠 토토) Circle 스포츠 토토 to Circle Circle (스포츠 토토 '(0,0), (1,1))')
Circle (포인트, 이중 정밀) Circle 중앙 및 반경으로 Circle (Point '(0,0)', 2.0)
Circle (Polygon) Circle POLYGON TO CIRCE Circle (다각형 '((0,0), (1,1), (2,0))
line (포인트, 포인트) line 선으로 가리 line (point '(-1,0)', 포인트 '(1,0)')
lseg (스포츠 토토) LSEG 선 세그먼트에 대한 상자 대각선 LSEG (스포츠 토토 '((-1,0),))')
lseg (포인트, 포인트) LSEG 라인 세그먼트 포인트 lseg (포인트 '(-1,0)', 포인트 '(1,0)')
Path (폴리곤) PATH POLY TO PATH Path (다각형 '((0,0), (1,1), (2,0))
포인트(이중 정밀, 이중 정밀도) 포인트 Construct Point 포인트 (23.4, -44.5)
포인트 (스포츠 토토) 포인트 상자의 중심 Point (스포츠 토토 '((-1,0),))')
포인트 (Circle) 포인트 원의 중심 포인트 (원 '((0,0), 2.0)')
포인트 (lseg) 포인트 라인 세그먼트의 중심 Point (lseg '((-1,0), (1,0))')
포인트 (폴리곤) 포인트 다각형의 중심 포인트 (다각형 '((0,0), (1,1), (2,0))
다각형 (스포츠 토토) Polygon 상자에서 4 점 다각형 Polygon (스포츠 토토 '((0,0),))')
다각형 (Circle) 다각형 12 점 다각형으로 원 다각형 (원 '(0,0), 2.0)')
다각형 (NPTS, Circle) 다각형 Circle toNPTS-Point Polygon Polygon (12, Circle '((0,0), 2.0)')
폴리곤 (PATH) Polygon 다각형으로가는 길 Polygon (Path '((0,0), (1,1), (2,0))')

a의 두 구성 요소 번호에 액세스 할 수 있습니다.포인트요점이 인덱스 0과 1이있는 배열 인 것처럼. 예를 들어, ifT.Pis포인트열면t에서 p [0] 선택x 좌표를 검색하고업데이트 t 세트 p [1] = ... ...y 좌표를 변경합니다. 같은 방식으로 유형의 값스포츠 토토또는LSEG두 배열로 취급 될 수 있습니다포인트값.

theArea함수는 유형에 대해 작동합니다스포츠 토토, CirclePATH. 그만큼Area함수는에서만 작동합니다.PATH데이터 유형의 포인트 인 경우PATH는 중단되지 않습니다. 예를 들어,PATH '((0,0), (0,1), (2,1), (2,2), (1,2), (1,0), (0,0))':: path작동하지 않습니다. 그러나 다음은 시각적으로 동일합니다PATH '((0,0), (0,1), (1,1), (1,2), (2,2), (2,1), (1,1), (1,0), (0,0))':: PATH작동합니다. 교차와 비 연락의 개념 인 경우PATH혼란스럽고, 위의 두 가지를 모두 그리십시오PATH그래프 용지에 나란히.