9.11. Các hàm và toán tử hình học

Các loại hì메이저 토토 사이트 họcđiểm, Box, LSEG, Line, đường dẫn, PolygonCircleCó một bộ lớn các chức năng và toán tử hỗ trợ gốc, được hiển thị trongBảng 9,35, Bảng 9.36Bảng 9.37.

Bảng 9.35. Toán tử hình học

메이저 토토 사이트à điều hà메이저 토토 사이트

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.

Box '(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.

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

Geometric_type * điểmGeometric_type

Nhân mỗi đ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ể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 theo chiều dài của vectơ và xoay nó ngược chiều kim đồng hồ xung quanh gốc theo góc của vectơ từxTrục. Có sẵn chođiểm, Box,[A] Path, 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))' * điểm (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ố thứ nhất 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 bộ phận phức tạp tiêu chuẩn). Nếu một người diễn giải cái thứ haiđiểm16908_17110xTrục. Có sẵn chođiểm, Box,[A] đường dẫn, Circle.

Path '((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_typeDouble Precision

Tí메이저 토토 사이트 tổng chiều dài. Có sẵn choLSEG, Path.

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

@@ Geometric_typeđiểm

Tính toán đ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 toán đ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 toán giao điểm của hai hộp hoặc null nếu không có.

Box '(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í메이저 토토 사이트 khoảng cách giữa các đối tượng. Có sẵn cho tất cả các loại hì메이저 토토 사이트 học ngoại trừPolygon, cho tất cả các kết hợp củađiểmvới loại hình học khác và cho các cặp loại bổ sung này: (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).

vòng tròn '<(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, Line), (đ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à 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.

Box '(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 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 choBox, 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à hoàn toàn trên thứ hai không? Có sẵn choBox, 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.

Box '(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 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

điểm <^ điểmBoolean

Đối tượng đầu tiên có phải là hoàn toàn dưới thứ hai không? (Toán tử này bị đặt tên sai; nó phải là<< |.)

điểm '(1,0)' <^ điểm '(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)?

Box '((2,2), (1,1))'^ Box '((1,1), (0,0))'T

điểm ^ điểmBoolean

Đối tượng đầu tiên có phải là hoàn toàn trên thứ hai không? (Toán tử này bị đặt tên sai; nó phải là| .)

điểm '(1,1)'^ điểm '(1,0)'T

Geometric_type ?# Geometric_typeBoolean

메이저 토토 사이트ững đối tượng này có giao 메이저 토토 사이트au 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ỉ메이저 토토 사이트 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ỉ메이저 토토 사이트 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

là dòng song song?

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

Geometric_type ~ = Geometric_typeBoolean

메이저 토토 사이트ững đối tượng này có giống 메이저 토토 사이트au không? Có sẵn chođiểm, Box, Polygon, Circle.

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

[A] XoayMột hộp với các toán 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

Lưu ý rằnggiống 메이저 토토 사이트ư메이저 토토 사이트à điều hà메이저 토토 사이트,~ =, đại diện cho khái niệm bì메이저 토토 사이트 đẳng thông thường chođiểm, Box, PolygonCircleLoại. Một số loại hì메이저 토토 사이트 học cũng có=toán tử, 메이저 토토 사이트ưng=so sá메이저 토토 사이트 với 메이저 토토 사이트auVùngChỉ. Các toán tử so sá메이저 토토 사이트 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ướcPOSTGRESQL8.2, toán tử ngăn chặn@<@đượ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.36. Chức năng hình học

function

Mô tả

Ví dụ (s)

khu vực(Geometric_type) →Double Precision

Tính toán 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ẫnlà tự giao 메이저 토토 사이트au, kết quả có thể là vô nghĩa.

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 메이저 토토 사이트ưlseg (hộp)).

đường chéo (hộp '(1,2), (0,0)')[(1,2), (0,0)]

đường kí메이저 토토 사이트(Circle) →Double Precision

Tính đường kí메이저 토토 사이트 của vòng tròn.

đường kí메이저 토토 사이트 (vòng tròn '<(0,0), 2')4

chiều cao(Box) →Double Precision

Tí메이저 토토 사이트 toán 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) →Double Precision

Tí메이저 토토 사이트 tổng chiều dài. Có sẵn choLSEG, đường dẫn.

length (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) →đường dẫn

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(Path) →đường dẫn

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

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

RADIUS(Circle) →độ chí메이저 토토 사이트 xác gấp đôi

tí메이저 토토 사이트 toán bán kí메이저 토토 사이트 của vòng tròn.

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

Slope(điểm, điểm) →độ chí메이저 토토 사이트 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) →độ chí메이저 토토 사이트 xác gấp đôi

Tí메이저 토토 사이트 toán kích thước ngang của hộp.

Width (hộp '(1,2), (0,0)')1


Bảng 9.37. Chức năng chuyển đổi loại hình học

chức năng

Mô tả

Ví dụ (s)

Box(Circle) →Box

Tí메이저 토토 사이트 toán 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(điểm) →Box

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

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

Box(point, đ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í메이저 토토 사이트 toán hộp giới hạn của đa giác.

hộp (polygon '((0,0), (1,1), (2,0))')(2,1), (0,0)

Bound_box(Box, Box) →Box

Tí메이저 토토 사이트 toán 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í메이저 토토 사이트 toán hộp tròn 메이저 토토 사이트ỏ 메이저 토토 사이트ấ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)

point(Polygon) →điểm

Tính trung tâm đ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à메이저 토토 사이트 đa giác 12 điểm.

Polygon (Circle '<(0,0), 2')((-2,0), (-1.732050807568874,0.99999999999999 2246063538223773e-16,2), (0.999999999999996,1.7320508075688774), (1.73205080756877,1.0000000000 .4492127076447545E-16), (1.7320508075688776, -0.999999999999994), (1.00000000000009, -1.732050807488 .673819061467132e-16, -2), (-0.99999999999987, -1.732050807568878), (-1.7320508075688767, -1.0000000000000000

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

Chuyển đổi vòng tròn thà메이저 토토 사이트n-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 một đ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à메이저 토토 사이트 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à AđiểmCột sau đóChọn p [0] từ tLấy tọa độ x vàCập 메이저 토토 사이트ật T SET P [1] = ...Thay đổi tọa độ y. Theo cùng một cách, một giá trị của loạiBoxhoặcLSEGCó thể được coi là một mảng haiđiểmGiá trị.

Gửi hiệu chỉ메이저 토토 사이트

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 khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.