Tôi nghĩ rằng hình thức đại số cạnh của Guibas và Stolfi là một chút không cần thiết.
Tất cả những gì thực sự cần thiết là ghi nhớ sự khác biệt giữa đồ thị nguyên thủy và đồ thị kép. Mỗi mặt của đồ thị nguyên thủy có một đỉnh kép tương ứng ; mỗi cạnh của đồ thị nguyên thủy có cạnh kép tương ứng ; và mỗi đỉnh của đồ thị nguyên thủy có một mặt kép tương ứng . Các cạnh nguyên thủy kết nối các đỉnh nguyên thủy và các mặt nguyên thủy riêng biệt; các cạnh kép kết nối các đỉnh kép và các mặt kép riêng biệt. Sự đối ngẫu của bất cứ điều gì là điều ban đầu. Xem hình 4 trong bài báo của Guibas và Stolfi:f ∗ e e ∗ v v ∗ff*ee*vv*
Guibas và Stolfi đề xuất suy nghĩ về từng cạnh (có thể là nguyên thủy hoặc kép) như là một bộ gồm bốn cạnh được định hướng, định hướng ; Để đơn giản, tôi sẽ gọi những phi tiêu này . Mỗi phi tiêu chỉ từ một đuôi điểm cuối ( → e ) đến điểm cuối khác và tách cục bộ hai mặt trái ( → e ) và phải ( → e ) . Lựa chọn điểm cuối nào để gọi đuôi ( → e ) là hướng của phi tiêue⃗ đuôi ( e⃗ )đầu ( e⃗ )trái ( e⃗ )đúng ( đ⃗ )đuôi ( e⃗ )và lựa chọn mặt nào để gọi là hướng của nó . (Guibas và Stolfi sử dụng Hồi Org và và Dest Dest Thay thay vì đuôi đuôi và đầu bếp, nhưng tôi thích các nhãn ngắn hơn, vì Chữ viết tắt không cần thiết là xấu xa.)trái ( e⃗ )
Đối với mọi phi tiêu , Guibas và Stolfi liên kết ba phi tiêu liên quan:e⃗
- : Phi tiêu rờitiếp theo theo thứ tự ngược chiều kim đồng hồ sau.đuôiNext ( e⃗ )→ eđuôi ( e⃗ )e⃗
- → e trái ( → e ) phải ( → e )lật ( e⃗ ) : Các “cùng” phi tiêu như , nhưng với và tráo đổi.e⃗ trái ( e⃗ )đúng ( đ⃗ )
- → exoay ( e⃗ ) : Phi tiêu kép thu được bằng cách cho một phần tư quay ngược chiều kim đồng hồ quanh điểm giữa của nó.e⃗
Ba chức năng này đáp ứng tất cả các loại danh tính tuyệt vời, như sau:
- phải ( đuôiNext ( e⃗ ) ) = trái ( e⃗ )
- phải ( lật ( e⃗ ) ) = trái ( e⃗ )
- phải ( xoay ( e⃗ ) ) = đầu ( e⃗ )*
- lật ( lật ( e⃗ ) ) = e⃗
- xoay ( xoay ( xoay ( xoay ( e⃗ ) ) ) ) = e⃗
- tailNext ( xoay ( tailNext ( xoay ( e)⃗ ) ) ) ) = e⃗
Để biết danh sách đầy đủ, xem trang 83 của bài báo (nhưng hãy cẩn thận rằng các tác giả sử dụng ký hiệu hậu tố , có lẽ vì nó gần với mã khai báo hơn ). Guibas và Stolfi gọi bất kỳ bộ ba hàm nào thỏa mãn tất cả các danh tính này là đại số cạnh .e F l i pe.Flip
Hơn nữa, với ba chức năng này, người ta có thể định nghĩa một số chức năng hữu ích khác như
- đảo ngược ( e⃗ ) = Xoay ( lật ( xoay ( e⃗ ) ) ) - trao đổi đỉnh đầu và đuôi
- bên trái ( e⃗ ) = Xoay ( tailNext ( xoay ( xoay ( xoay ( e)⃗ ) ) ) ) ) - phi tiêu tiếp theo sau theo thứ tự ngược chiều kim đồng hồ quanh mặte⃗ trái ( e⃗ )
Cuối cùng, việc biết các hàm này cho bạn biết tất cả mọi thứ về cấu trúc liên kết của phân khu và bất kỳ phân vùng đa giác nào của bất kỳ bề mặt nào (có thể định hướng hay không) có thể được mã hóa bằng ba hàm này.
Cấu trúc dữ liệu bốn cạnh là một biểu diễn đặc biệt thuận tiện của biểu đồ bề mặt cung cấp quyền truy cập vào tất cả các chức năng này, cùng với một số hoạt động liên tục khác như chèn, xóa, ký hợp đồng, mở rộng và lật cạnh; tách hoặc hợp nhất các đỉnh hoặc mặt; và thêm hoặc xóa tay cầm hoặc mũ chéo.
Chúc vui vẻ!