Tôi có một hệ thống nơi bạn có thể nhấp một lần để đặt một nút trong một cảnh. Khi bạn đặt 3 nút, nó tạo thành một hình tam giác. Khi bạn đặt bất kỳ nút nào trong tương lai, nó sẽ tạo ra một tam giác mới bằng cách nối nút đó với 2 nút hiện có gần nhất.
Điều này hoạt động tốt hầu hết thời gian nhưng không hoàn hảo khi được sử dụng gần các hình tam giác với các góc rất nhọn, bởi vì một trong 2 nút gần nhất thường không phải là một nút nên được sử dụng.
Ví dụ, xem hình ảnh dưới đây. Tam giác màu đỏ tươi là cái đầu tiên được đặt. Nếu sau đó tôi nhấp vào vị trí được đánh dấu X, cái tôi nhận được là một hình tam giác mới có lớp phủ màu xanh. Những gì tôi muốn là một hình tam giác mới, nơi lớp phủ màu xanh lá cây. (ví dụ: đối xứng với màu đỏ tươi, trong ví dụ này. Làm rõ: Các hình tam giác màu lục và màu đỏ không trùng nhau - màu xanh lá cây kéo dài dưới màu xanh lam đến nút ngoài cùng bên trái)
Làm cách nào để xác định 2 đỉnh hiện có sẽ sử dụng khi tạo các tam giác mới để các tam giác không bị chồng lên nhau như thế này?
EDIT : Tìm kiếm cạnh gần nhất cho kết quả tốt hơn , nhưng không hoàn hảo. Hãy xem xét tình huống này:
Phép thử 'cạnh gần nhất' không rõ ràng và có thể trả về AB hoặc AC (vì điểm gần nhất với X cho cả hai là tại A). Kết quả mong muốn sẽ là AC, để tạo thành tam giác ACX không có cạnh trùng nhau. Làm thế nào tôi có thể đảm bảo kết quả này? (Tôi không cần phải thực hiện các thử nghiệm chồng chéo cạnh riêng lẻ như một bộ ngắt kết nối nếu có thể vì tôi lo ngại rằng thử nghiệm cạnh gần nhất không nhất thiết phải phát hiện ra 2 là chính xác, do các vấn đề chính xác về dấu phẩy động.)