Phiên bản được hỗ trợ:Current(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

9.11. kèo bóng đá c1 học#

Các loại kèo bóng đá c1điểm, Box, LSEG, Line, đường dẫn, PolygonCircleCó một bộ lớn các hàm và kèo bóng đá c1 tử hỗ trợ gốc, được hiển thị trongBảng 9.36, Bảng 9.37Bảng 9.38.

Bảng 9.36. kèo bóng đá c1 tử hình học

Nhà điều hành

Mô tả

Ví dụ (s)

Geometric_type + điểmGeometric_type

Thêm tọa độ của lần thứ haiđiểmĐối với mỗi điểm của đối số đầu tiên, do đó thực hiện dịch. Có sẵn chođiểm, Box, đường dẫn, Circle.

hộp '(1,1), (0,0)' + điểm '(2,0)'(3,1), (2,0)

đường dẫn + đường dẫnđường dẫn

Concatenates Hai đường dẫn mở (trả về null nếu một trong hai đường dẫn được đóng).

đường dẫn '[(0,0), (1,1)]' + đường dẫn '[(2,2), (3,3), (4,4)]'[(0,0), (1,1), (2,2), (3,3), (4,4)]

Geometric_type - điểmGeometric_type

Trừ tọa độ của lần thứ haiđiểmTừ mỗi điểm của đối số đầu tiên, do đó thực hiện dịch. Có sẵn chođiểm, Box, đường dẫn, Circle.

Box '(1,1), (0,0)' - điểm '(2,0)'(-1,1), (-2,0)

Geometric_type * điểmGeometric_type

Nhân từng điểm của đối số đầu tiên với phần thứ haiđiểm(coi một điểm là một số phức được đại diện bởi các phần thực và tưởng tượng, và thực hiện phép nhân phức tạp tiêu chuẩn). Nếu một người diễn giải cái thứ haiđiểm15404_15608xTrục. Có sẵn chođiểm, Box,[A] đường dẫn, Circle.

Path '((0,0), (1,0), (1,1))' * Point '(3.0,0)'((0,0), (3,0), (3,3))

Path '((0,0), (1,0), (1,1))' * Point (cosd (45), sind (45))((0,0), (0.7071067811865475,0.7071067811865475), (0,1.414213562373095))

Geometric_type / điểmGeometric_type

Chia từng điểm của đối số đầu tiên cho lần thứ haiđiểm(coi một điểm là một số phức được đại diện bởi các phần thực và tưởng tượng, và thực hiện phân chia phức tạp tiêu chuẩn). Nếu một người diễn giải cái thứ haiđiểmLà một vectơ, điều này tương đương với việc chia tỷ lệ kích thước và khoảng cách của đối tượng từ gốc xuống theo chiều dài của vectơ và xoay theo chiều kim đồng hồ xung quanh gốc bằng góc của vectơ từxTrục. Có sẵn chođiểm, Box,[A] đường dẫn, Circle.

đường dẫn '((0,0), (1,0), (1,1))' / point '(2.0,0)'((0,0), (0,5,0), (0,5,0,5))

Path '((0,0), (1,0), (1,1))' / point (cosd (45), sind (45))((0,0), (0.7071067811865476, -0.7071067811865476), (1.4142135623730951,0))

@-@ Geometric_typeĐộ chính xác gấp đôi

Tính tổng chiều dài. Có sẵn choLSEG, đường dẫn.

@-@ path '[(0,0),(1,0),(1,1)]'2

@@ Geometric_typeđiểm

Tính kèo bóng đá c1 điểm trung tâm. Có sẵn choBox, LSEG, Polygon, Circle.

@@ box '(2,2), (0,0)'(1,1)

# Geometric_typeSố nguyên

Trả về số lượng điểm. Có sẵn chođường dẫn, Polygon.

# path '((1,0), (0,1), (-1,0))'3

Geometric_type # Geometric_typeđiểm

Tính kèo bóng đá c1 điểm giao nhau, hoặc null nếu không có. Có sẵn choLSEG, Line.

lseg '[(0,0), (1,1)]' # lseg '[(1,0), (0,1)]'(0,5,0,5)

Box # BoxBox

Tính kèo bóng đá c1 giao điểm của hai hộp hoặc null nếu không có.

hộp '(2,2), (-1, -1)' # box '(1,1), (-2, -2)'(1,1), (-1, -1)

Geometric_type ## Geometric_typeđiểm

Tính điểm gần nhất với đối tượng đầu tiên trên đối tượng thứ hai. Có sẵn cho các cặp loại này: (điểm, Box), (điểm, LSEG), (điểm, Line), (LSEG, Box), (LSEG, LSEG), (Line, LSEG).

điểm '(0,0)' ## lseg '[(2,0), (0,2)]'(1,1)

Geometric_type <- Geometric_typeDouble Precision

Tính khoảng cách giữa các đối tượng. Có sẵn cho tất cả bảy loại kèo bóng đá c1, cho tất cả các kết hợp củađiểmwith another geometric type, and for these additional pairs of types: (Box, LSEG), (LSEG, Line), (Polygon, Circle) (và các trường hợp cổ góp).

Circle '<(0,0), 1' <- Circle '<(5,0), 1'3

Geometric_type @ Geometric_typeBoolean

Đối tượng đầu tiên có chứa thứ hai không? Có sẵn cho các cặp loại này: (Box, điểm), (Box, Box), (đường dẫn, điểm), (Polygon, điểm), (Polygon, Polygon), (Circle, điểm), (circle, Circle).

Circle '<(0,0), 2' @ Point '(1,1)'T

Geometric_type <@ Geometric_typeBoolean

Đối tượng đầu tiên có chứa trong hoặc trên thứ hai không? Có sẵn cho các cặp loại này: (điểm, Box), (điểm, LSEG), (điểm, dòng), (điểm, đường dẫn), (điểm, Polygon), (điểm, Circle), (Box, Box), (LSEG, Box), (LSEG, Line), (Polygon, Polygon), (Circle, circle).

điểm '(1,1)' <@ Circle '<(0,0), 2'T

Geometric_type && Geometric_typeBoolean

Những đối tượng này có trùng nhau không? (Một điểm chung làm cho điều này đúng.) Có sẵn choBox, Polygon, Circle.

hộp '(1,1), (0,0)' && box '(2,2), (0,0)'T

Geometric_type << Geometric_typeBoolean

Đối tượng đầu tiên có phải là bên trái của thứ hai không? Có sẵn chođiểm, Box, Polygon, Circle.

Circle '<(0,0), 1' << Circle '<(5,0), 1'T

Geometric_type Geometric_typeBoolean

Đối tượng đầu tiên có phải là đúng của thứ hai không? Có sẵn chođiểm, Box, Polygon, Circle.

Circle '<(5,0), 1' Circle '<(0,0), 1'T

Geometric_type &< Geometric_typeBoolean

Đối tượng đầu tiên không mở rộng sang phải của thứ hai? Có sẵn choBox, Polygon, Circle.

27509_27556T

Geometric_type & Geometric_typeBoolean

Đối tượng đầu tiên không mở rộng sang bên trái của thứ hai? Có sẵn choBox, Polygon, Circle.

hộp '(3,3), (0,0)' & hộp '(2,2), (0,0)'T

Geometric_type << | Geometric_typeBoolean

Đối tượng đầu tiên có phải là hoàn toàn dưới thứ hai không? Có sẵn chođiểm, Box, Polygon, Circle.

hộp '(3,3), (0,0)' << | Hộp '(5,5), (3,4)'T

Geometric_type | Geometric_typeBoolean

Đối tượng đầu tiên có phải là thứ hai không? Có sẵn chođiểm, Box, polygon, Circle.

Box '(5,5), (3,4)' | hộp '(3,3), (0,0)'T

Geometric_type & <| Geometric_typeBoolean

Đối tượng đầu tiên không mở rộng trên thứ hai? Có sẵn choBox, Polygon, Circle.

hộp '(1,1), (0,0)' & <|. hộp '(2,2), (0,0)'T

Geometric_type | & Geometric_typeBoolean

Đối tượng đầu tiên không mở rộng dưới thứ hai? Có sẵn choBox, Polygon, Circle.

Box '(3,3), (0,0)' | & Box '(2,2), (0,0)'T

Box <^ BoxBoolean

là đối tượng đầu tiên bên dưới thứ hai (cho phép các cạnh chạm vào)?

hộp '((1,1), (0,0))' <^ box '((2,2), (1,1))'T

Box ^ BoxBoolean

là đối tượng đầu tiên trên thứ hai (cho phép các cạnh chạm vào)?

hộp '((2,2), (1,1))'^ hộp '((1,1), (0,0))'T

Geometric_type ?# Geometric_typeBoolean

Những đối tượng này có giao nhau không? Có sẵn cho các cặp loại này: (Box, Box), (LSEG, Box), (LSEG, LSEG), (LSEG, Line), (Line, Box), (Line, Line), (đường dẫn, đường dẫn).

lseg '[(-1,0), (1,0)]'?# Hộp '(2,2), (-2, -2)'T

?- LineBoolean

?- LSEGBoolean

là dòng ngang?

?- lseg '[(-1,0), (1,0)]'T

điểm ?- điểmboolean

được căn chỉnh theo chiều ngang (nghĩa là có cùng tọa độ y)?

điểm '(1,0)'?- điểm '(0,0)'T

? | LineBoolean

? | LSEGBoolean

là đường thẳng đứng?

? | lseg '[(-1,0), (1,0)]'f

điểm ? | điểmBoolean

được căn chỉnh theo chiều dọc (nghĩa là có cùng tọa độ x)?

điểm '(0,1)'? | điểm '(0,0)'T

Line ?-| LineBoolean

LSEG ?-| LSEGBoolean

là đường vuông góc?

lseg '[(0,0), (0,1)]'?-| lseg '[(0,0), (1,0)]'T

Line ? || LineBoolean

LSEG ? || LSEGBoolean

Are lines parallel?

lseg '[(-1,0), (1,0)]'? || lseg '[(-1,2), (1,2)]'T

Geometric_type ~ = Geometric_typeBoolean

Những đối tượng này có giống nhau không? Có sẵn chođiểm, Box, Polygon, Circle.

Polygon '((0,0), (1,1))' ~ = polygon '((1,1), (0,0))'T

[A] XoayKhănMột hộp với các kèo bóng đá c1 tử này chỉ di chuyển các điểm góc của nó: hộp vẫn được coi là có các cạnh song song với các trục. Do đó, kích thước của hộp không được bảo tồn, như một vòng quay thực sự sẽ làm.


THẬN TRỌNG

Note that thegiống nhưHồiNhà điều hành,~ =, đại diện cho khái niệm bình đẳng thông thường chođiểm, Box, PolygonCircleLoại. Một số loại kèo bóng đá c1 cũng có=kèo bóng đá c1 tử, nhưng=so sánh bằng nhauVùngChỉ. Các kèo bóng đá c1 tử so sánh vô hướng khác (<=và cứ thế), nếu có sẵn cho các loại này, tương tự so sánh các khu vực.

Lưu ý

trướcPostgreSQL14, điểm hoàn toàn bên dưới/kèo bóng đá c1 tử so sánhđiểm << | điểmđiểm | điểmđược gọi tương ứng<^^. Những cái tên này vẫn có sẵn, nhưng không được chấp nhận và cuối cùng sẽ bị xóa.

Bảng 9.37. Chức năng kèo bóng đá c1

chức năng

Mô tả

Ví dụ

khu vực(Geometric_type) →Double Precision

Tính kèo bóng đá c1 khu vực. Có sẵn choBox, đường dẫn, Circle. MỘTđường dẫnĐầu vào phải được đóng lại, nếu không null được trả về. Ngoài ra, nếuđường dẫnis self-intersecting, the result may be meaningless.

Vùng (hộp '(2,2), (0,0)')4

trung tâm(Geometric_type) →điểm

Tính điểm trung tâm. Có sẵn choBox, Circle.

trung tâm (hộp '(1,2), (0,0)')(0,5,1)

đường chéo(Box) →LSEG

trích xuất đường chéo của hộp dưới dạng phân đoạn dòng (giống nhưlseg (hộp)).

diagonal(box '(1,2),(0,0)')[(1,2), (0,0)]

đường kính(Circle) →độ chính xác gấp đôi

Tính đường kính của vòng tròn.

đường kính (vòng tròn '<(0,0), 2')4

chiều cao(Box) →độ chính xác gấp đôi

Tính kèo bóng đá c1 kích thước dọc của hộp.

chiều cao (hộp '(1,2), (0,0)')2

isclosed(đường dẫn) →Boolean

Đóng đường dẫn?

isclosed (đường dẫn '((0,0), (1,1), (2,0))')T

isopen(đường dẫn) →Boolean

là đường dẫn mở?

isopen (đường dẫn '[(0,0), (1,1), (2,0)]')T

LEGN(Geometric_type) →độ chính xác gấp đôi

Tính tổng chiều dài. Có sẵn choLSEG, đường dẫn.

LEGN (PATH '((-1,0), (1,0))')4

NPoints(Geometric_type) →Số nguyên

Trả về số lượng điểm. Có sẵn chođường dẫn, Polygon.

npoints (đường dẫn '[(0,0), (1,1), (2,0)]')3

pclose(đường dẫn) →path

Chuyển đổi đường dẫn sang dạng đóng.

pclose (đường dẫn '[(0,0), (1,1), (2,0)]')((0,0), (1,1), (2,0))

Popen(đường dẫn) →Path

Chuyển đổi đường dẫn thành biểu mẫu mở.

Popen (Path '((0,0), (1,1), (2,0))')[(0,0), (1,1), (2,0)]

RADIUS(Circle) →Double Precision

tính kèo bóng đá c1 bán kính của vòng tròn.

RADIUS (vòng tròn '<(0,0), 2')2

Slope(point, điểm) →độ chính xác gấp đôi

Tính độ dốc của một đường được vẽ qua hai điểm.

Độ dốc (điểm '(0,0)', điểm '(2,1)')0.5

Width(Box) →Double Precision

Tính kèo bóng đá c1 kích thước ngang của hộp.

chiều rộng (hộp '(1,2), (0,0)')1


Bảng 9.38. Chức năng chuyển đổi loại kèo bóng đá c1

chức năng

Mô tả

Ví dụ (s)

Box(Circle) →Box

Tính kèo bóng đá c1 hộp được ghi trong vòng tròn.

hộp (vòng tròn '<(0,0), 2')(1.414213562373095,1.414213562373095), (-1.414213562373095, -1.414213562373095)

Box(point) →Box

Chuyển đổi điểm thành hộp trống.

hộp (điểm '(1,0)')(1,0), (1,0)

Box(điểm, điểm) →Box

Chuyển đổi bất kỳ hai điểm góc nào thành hộp.

hộp (điểm '(0,1)', điểm '(1,0)')(1,1), (0,0)

Box(Polygon) →Box

Tính kèo bóng đá c1 hộp giới hạn của đa giác.

Box (Polygon '((0,0), (1,1), (2,0))')(2,1), (0,0)

Bound_box(Box, Box) →Box

Tính kèo bóng đá c1 hộp giới hạn của hai hộp.

Bound_box (hộp '(1,1), (0,0)', hộp '(4,4), (3,3)')(4,4), (0,0)

Circle(Box) →Circle

Tính kèo bóng đá c1 hộp tròn nhỏ nhất.

vòng tròn (hộp '(1,1), (0,0)')<(0,5,0,5), 0.7071067811865476

Circle(điểm, Double Precision) →Circle

Xây dựng vòng tròn từ trung tâm và bán kính.

vòng tròn (điểm '(0,0)', 2.0)<(0,0), 2

Circle(Polygon) →Circle

Chuyển đổi đa giác thành vòng tròn. Trung tâm của vòng tròn là trung bình của các vị trí của các điểm của đa giác và bán kính là khoảng cách trung bình của các điểm của đa giác từ trung tâm đó.

Circle (Polygon '((0,0), (1,3), (2,0))')<(1,1), 1.6094757082487299

Line(điểm, điểm) →Line

Chuyển đổi hai điểm thành dòng thông qua chúng.

dòng (điểm '(-1,0)', điểm '(1,0)')0,-1,0

LSEG(Box) →LSEG

trích xuất đường chéo của hộp dưới dạng phân đoạn dòng.

lseg (hộp '(1,0), (-1,0)')[(1,0), (-1,0)]

LSEG(điểm, điểm) →LSEG

Xây dựng phân đoạn dòng từ hai điểm cuối.

lseg (điểm '(-1,0)', điểm '(1,0)')[(-1,0), (1,0)]

đường dẫn(Polygon) →đường dẫn

Chuyển đổi đa giác thành một đường dẫn đóng với cùng một danh sách các điểm.

đường dẫn (polygon '((0,0), (1,1), (2,0))')((0,0), (1,1), (2,0))

điểm(Double Precision, Double Precision) →điểm

Cấu trúc điểm từ tọa độ của nó.

Điểm (23.4, -44.5)(23.4,-44.5)

điểm(Box) →điểm

Tính trung tâm của hộp.

điểm (hộp '(1,0), (-1,0)')(0,0)

điểm(Circle) →điểm

Tính trung tâm của vòng tròn.

điểm (vòng tròn '<(0,0), 2')(0,0)

điểm(LSEG) →điểm

Tính trung tâm của phân đoạn dòng.

điểm (lseg '[(-1,0), (1,0)]')(0,0)

điểm(Polygon) →point

Tính trung tâm của đa giác (giá trị trung bình của các vị trí của các điểm của đa giác).

Điểm (Polygon '((0,0), (1,1), (2,0))')(1.0.333333333333333)

Polygon(Box) →polygon

Hộp chuyển đổi thành đa giác 4 ​​điểm.

Polygon (hộp '(1,1), (0,0)')((0,0), (0,1), (1,1), (1,0))

Polygon(Circle) →Polygon

Chuyển đổi vòng tròn thành đa giác 12 điểm.

Polygon (Circle '<(0,0), 2')57480_57909

Polygon(Số nguyên, Circle) →Polygon

Chuyển đổi vòng tròn thànhn-Point Polygon.

Polygon (4, Circle '<(3,0), 1')((2,0), (3,1), (4.1.2246063538223773e-16), (3, -1))

Polygon(Path) →Polygon

Chuyển đổi đường dẫn đóng thành đa giác có cùng danh sách các điểm.

Polygon (Path '((0,0), (1,1), (2,0))')((0,0), (1,1), (2,0))


Có thể truy cập hai số thành phần của AđiểmNhư thể điểm là một mảng có chỉ mục 0 và 1. Ví dụ, nếuT.Plà mộtđiểmCột sau đóChọn p [0] từ tLấy tọa độ x vàCẬP NHẬT T SET P [1] = ...changes the Y coordinate. In the same way, a value of typeBoxhoặcLSEGcó thể được coi là một mảng haiđiểmGiá trị.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.