2011-10-16 31 views
5

Cho một tập hợp các điểm trong mặt phẳng và triangulation of the convex hull of the points không đầy đủ (chỉ một số cạnh được đưa ra), tôi đang tìm một thuật toán để hoàn thành tam giác. vẫn cố định). Bạn có thể giả định rằng nó có thể hoàn thành một phần tam giác nhưng nó sẽ là tuyệt vời nếu bạn cũng có thể đề xuất một thuật toán để kiểm tra quá.Thuật toán để hoàn thành một phần tam giác (Constrained Triangulation)

CẬP NHẬT "Bạn được cung cấp một lồi lồi của một tập hợp các điểm R^2, về cơ bản là một đa giác với một số điểm bên trong nó. Chúng tôi muốn tam giác tập hợp các điểm đó là một vấn đề đơn giản trên chính nó, nhưng bạn cũng được đưa ra một số cạnh mà bất kỳ triangulation mà bạn đưa ra nên sử dụng những cạnh. "

+0

Làm cách nào bạn có thể thực hiện triangulation chỉ với 1 cạnh? Đó không phải là một không gian vô hạn? –

+0

Từ ngữ "cập nhật" có vẻ giống như bài tập về nhà, đúng không? – Damon

+0

Không, không cần, tôi cần thuật toán để khởi tạo lưới để tính toán thêm. – user972432

Trả lời

4

Có lẽ đây là một câu trả lời ngây thơ, nhưng bạn không thể chỉ sử dụng một tam giác hạn chế delaunay? Thêm các cạnh đã biết dưới dạng các ràng buộc.

CGAL có nice implementation. Công cụ triangle có các tính năng tương tự và dễ bắt đầu hơn, nhưng có (có lẽ) ít linh hoạt hơn một chút.

0

Tôi phát hiện ra rằng cuốn sách "Hình học tính toán: Giới thiệu" có một điều trị chi tiết về chủ đề mặc dù nó không cung cấp sẵn sàng để triển khai mã giả.

Thuật toán đơn giản nhất là thuật toán tham lam liệt kê tất cả các cạnh có thể và sau đó thêm từng cái một để tránh giao cắt với các độ tuổi đã thêm trước đó. Có một cuộc thảo luận dài trong cuốn sách về cách giảm thời gian chạy xuống O (n^2 log n).

Sau đó, có một thuật toán O (n log n) lần đầu tiên thường xuyên hóa vỏ lồi với các cạnh đã cho và sau đó cá nhân hóa tam giác mỗi đa giác đơn âm.

Các vấn đề liên quan