이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.무지개 토토 PostgreSQL : 문서 : 17 : 9.11. 기하학적 기능 및 연산자버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.11. 기하학적 함수 및 연산자

기하학적 유형포인트, 상자, lseg, 라인, 경로, 다각형다음에 표시된 다양한 기본 지원 함수 및 연산자 세트가 있습니다.표 9-31, 표 9-32표 9-33.

주의

참고하세요"같은"배트맨 토토,~=는 일반적인 평등 개념을 나타냅니다., 상자, 다각형유형. 이러한 유형 중 일부에는=배트맨 토토이지만=같음으로 비교지역전용. 다른 스칼라 비교 배트맨 토토(<=등) 마찬가지로 이러한 유형의 영역을 비교합니다.

표 9-31. 기하학적 연산자

운영자 설명
+ 번역 상자 '((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))' / 포인트 '(2.0,0)'
# 교점 또는 교차점 상자 '((1,-1),(-1,1))' # 상자 '((1,1),(-2,-2))'
# 경로 또는 다각형의 점 수 # 경로 '((1,0),(0,1),(-1,0))'
@-@ 길이 또는 둘레 @-@ 경로 '((0,0),(1,0))'
@@ 센터 @@ 원 '((0,0),10)'
## 두 번째 피배트맨 토토의 첫 번째 피배트맨 토토와 가장 가까운 지점 포인트 '(0,0)' ## lseg '((2,0),(0,2))'
<- 사이의 거리 원 '((0,0),1)' <- 원 '((5,0),1)'
&& 겹침? (한 가지 공통점이 이를 사실로 만듭니다.) 상자 '((0,0),(1,1))' && 상자 '((0,0),(2,2))'
<< 완전히 다음 중 하나입니까? 원 '((0,0),1)' << 원 '((5,0),1)'
엄격히 옳은가요? 원 '((5,0),1)' 원 '((0,0),1)'
&< 오른쪽으로 확장되지 않습니까? 상자 '((0,0),(1,1))' &< 상자 '((0,0),(2,2))'
& 왼쪽으로 확장되지 않습니까? 박스 '((0,0),(3,3))' & 박스 '((0,0),(2,2))'
<<| 엄격히 아래에 해당합니까? 상자 '((0,0),(3,3))' <<| 상자 '((3,4),(5,5))'
| 엄격히 위에 있습니까? 상자 '((3,4),(5,5))' | 상자 '((0,0),(3,3))'
&<| 위로 확장되지 않습니까? 상자 '((0,0),(1,1))' &<| 상자 '((0,0),(2,2))'
|& 아래로 확장되지 않습니까? 상자 '((0,0),(3,3))' |& 상자 '((0,0),(2,2))'
<^ 아래에 있습니까(터치 가능)? 원 '((0,0),1)' <^ 원 '((0,5),1)'
^ 위(접촉 허용)입니까? 원 '((0,5),1)' ^ 원 '((0,0),1)'
?# 교차? lseg '((-1,0),(1,0))' ?# 상자 '((-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))'
@ 포함? 원 '((0,0),2)' @ 포인트 '(1,1)'
<@ 다음에 포함되어 있습니까? 점 '(1,1)' <@ 원 '((0,0),2)'
~= 같은데요? 다각형 '((0,0),(1,1))' ~= 다각형 '((1,1),(0,0))'

참고:이전PostgreSQL8.2, 봉쇄 연산자@그리고<@각각 호출되었습니다~그리고@. 이러한 이름은 계속 사용할 수 있지만 더 이상 사용되지 않으며 결국 제거될 예정입니다.

표 9-32. 기하학적 함수

기능 반환 유형 설명
지역(객체) 배정밀도 지역 면적(상자 '((0,0),(1,1))')
센터(객체) 센터 center(box '((0,0),(1,2))')
직경() 배정밀도 원의 직경 직경(원 '((0,0),2.0)')
높이(상자) 배정밀도 상자의 수직 크기 높이(상자 '((0,0),(1,1))')
닫힘(경로) 부울 닫힌 길? isclosed(경로 '((0,0),(1,1),(2,0))')
isopen(경로) 부울 열린 길이요? isopen(경로 '[(0,0),(1,1),(2,0)]')
길이(객체) 배정밀도 길이 길이(경로 '((-1,0),(1,0))')
n포인트(경로) int 포인트 수 npoints(경로 '[(0,0),(1,1),(2,0)]')
n포인트(다각형) int 포인트 수 npoints(다각형 '((1,1),(0,0))')
pclose(경로) 경로 경로를 닫힌 경로로 변환 pclose(경로 '[(0,0),(1,1),(2,0)]')
팝픈(경로) 경로 경로를 열기로 변환 popen(경로 '((0,0),(1,1),(2,0))')
반경() 배정밀도 원의 반경 반경(원 '((0,0),2.0)')
폭(상자) 배정밀도 상자의 가로 크기 너비(상자 '((0,0),(1,1))')

표 9-33. 기하학적 유형 변환 함수

기능 반환 유형 설명
상자() 상자 원에서 상자로 box(원 '((0,0),2.0)')
상자(, 포인트) 상자 상자를 가리킴 box(포인트 '(0,0)', 포인트 '(1,1)')
상자(다각형) 상자 다각형을 상자로 box(다각형 '((0,0),(1,1),(2,0))')
원(상자) 상자를 동그라미로 원(상자 '((0,0),(1,1))')
원(, 배정밀도) 원의 중심과 반경 원(점 '(0,0)', 2.0)
원(다각형) 다각형을 원으로 원(다각형 '((0,0),(1,1),(2,0))')
라인(포인트, ) 라인 points to line line(포인트 '(-1,0)', 포인트 '(1,0)')
lseg(상자) lseg 선분에 대한 대각선 상자 lseg(상자 '((-1,0),(1,0))')
lseg(포인트, ) lseg 선분을 가리킴 lseg(포인트 '(-1,0)', 포인트 '(1,0)')
경로(다각형) 경로 경로에 대한 다각형 경로(다각형 '((0,0),(1,1),(2,0))')
포인트(배정밀도, 배정밀도) 구성 지점 점(23.4, -44.5)
포인트(상자) 포인트 상자 중앙 점(상자 '((-1,0),(1,0))')
점() 포인트 원의 중심 점(원 '((0,0),2.0)')
포인트(lseg) 선분의 중심 point(lseg '((-1,0),(1,0))')
점(다각형) 다각형의 중심 점(다각형 '((0,0),(1,1),(2,0))')
다각형(상자) 다각형 상자를 4점 다각형으로 다각형(상자 '((0,0),(1,1))')
다각형() 다각형 원을 12점 다각형으로 다각형(원 '((0,0),2.0)')
다각형(npts, ) 다각형 동그라미로npts-점 다각형 다각형(12, 원 '((0,0),2.0)')
다각형(경로) 다각형 다각형 경로 다각형(경로 '((0,0),(1,1),(2,0))')

a의 두 구성요소 번호에 접근하는 것이 가능합니다포인트포인트가 인덱스 0과 1을 가진 배열인 것처럼 보입니다. 예를 들어, ift.p열 다음t에서 p[0] 선택X 좌표를 검색하고업데이트 t SET p[1] = ...Y 좌표를 변경합니다. 같은 방식으로 유형의 값은상자또는lseg2개의 배열로 처리될 수 있습니다.포인트값.

지역배트맨 토토는 해당 유형에 대해 작동합니다.상자, 경로.지역함수는 다음에서만 작동합니다.경로포인트가 있는 경우 데이터 유형경로교차하지 않습니다. 예를 들어,경로 '((0,0),(0,1),(2,1),(2,2),(1,2),(1,0),(0,0))'::PATH작동하지 않습니다. 그러나 다음은 시각적으로 동일합니다.경로 '((0,0),(0,1),(1,1),(1,2),(2,2),(2,1),(1,1),(1,0),(0,0))'::PATH작동합니다. 교차와 비교차의 개념인 경우경로혼란스럽습니다. 위의 두 가지를 모두 그리세요경로모눈종이 위에 나란히 놓여 있습니다.