0
Tải bản đầy đủ (.doc) (78 trang)

Điểm bên trong/ bên ngồi đa giác

Một phần của tài liệu THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG KHÔNG GIAN 2D 3D.DOC (Trang 35 -37 )

III. CÁC THUẬT TỐN KIỂM TRA SỰ TƯƠNG QUAN GIỮA CÁC ĐỐI TƯỢNG HÌNH HỌC

7. Điểm bên trong/ bên ngồi đa giác

Cơ sở tốn học:

Giải thuật này nhằm xác định một điểm cho trước cĩ nằm bên trong một đa giác đơn phẳng hay khơng.

Giải thuật xây dựng dựa trên định lý mang tên JORDAN sau đây:

“Mỗi đường cong, kín, đơn, phẳng, một chiều, phân hoạch mặt phẳng thành hai miền, một trong hai miền đĩ hồn tồn chứa những đường thẳng nào đĩ, miền cịn lại thì khơng cĩ tính chất đĩ”.

Luận văn tốt nghiệp

Trong định lý trên đây một trong hai miền sẽ được gọi là miền trong (gồm bản thân đường cong và phần mặt phẳng giới nội bởi đường cong). Khơng thuộc miền trong gọi là miền ngồi.

Định lý này vẫn đúng cho trường hợp đa giác đơn phẳng một chiều như là một trường hợp riêng.

Từ định lý này dẫn đến hệ quả sau:

Từ một điểm P bất kỳ, vẽ một tia chỉ cắt đa giác ở những điểm trong của các cạnh (nghĩa là : khơng đi qua đỉnh nào của đa giác); nếu số giao điểm là lẻ thì P là điểm trong, nếu số giao điểm là chẵn thì P là điểm ngồi”.

Về mặt kỹ thuật mọi đường cong đơn, phẳng, kín, liên thơng, khơng tự cắt đều cĩ thể tiếp cận tuyến tính bằng một đa giác bao gồm một số hữu hạn các cạnh liên tiếp. Vì vậy cho phép xây dựng một giải thuật test quan hệ trong/ ngồi chỉ bằng cách xét số giao điểm của tia cĩ gốc là điểm cần xét.

Giải thuật:

- Chọn Px là nửa đường thẳng xuất phát từ P song song với trục Ox, hướng về phía x>0. Lấy P=(x,y).

- P là điểm cần xét.

- Nếu (P là một đỉnh) hoặc (P thuộc trong một cạnh) thì Return (P điểm trong)

- Ngược lại, xác định giao điểm Px với các cạnh đa giác {

. Ci là cạnh Pi Pi+1 của đa giác

. Nếu y = yi thì xét hai cạnh cĩ một đầu là Pi (1)

.. Nếu cả hai đầu kia ở một phía của Pi thì tính Px cắt cả hai cạnh

. Ngược lại (1)

Nếu y > Max(yi,yi+1) hay y<Min(yi,yi+1) (2) Thì Px khơng cắt cạnh Ci

Luận văn tốt nghiệp

. Ngược lại (2)

.. Nếu x <= Min (xi,xi+1) (3) Thì Py cắt cạnh Ci

. Ngược lại (3)

.. Xét tọa độ giao điểm (yo,xo) của Px với cạnh Ci Nếu x >= xo thì Px khơng cắt Ci

}

- Nếu số giao điểm lẻ

. Return P thuộc đa giác.

Một phần của tài liệu THIẾT KẾ HỆ THỐNG KIỂM TRA CÁC QUAN HỆ HÌNH HỌC TRONG KHÔNG GIAN 2D 3D.DOC (Trang 35 -37 )

×