У мене є система, де можна клацнути один раз, щоб розмістити вузол у сцені. Розміщуючи 3 вузли, він утворює трикутник. Розміщуючи будь-які майбутні вузли, він створює новий трикутник, приєднуючи цей вузол до двох найближчих існуючих вузлів.
Це працює чудово більшу частину часу, але є помилковим при використанні поблизу трикутників з дуже гострими кутами, оскільки один з 2 найближчих вузлів часто не той, який слід використовувати.
Наприклад, дивіться зображення нижче. Перший розміщений пурпуровий трикутник. Якщо потім натисніть на позицію з позначкою X, я отримаю новий трикутник, де знаходиться синя накладка. Те, що я хочу, - це новий трикутник, де є зелена накладка. (тобто симетричний до пурпурового в цьому прикладі. Пояснення: Зелений та пурпуровий трикутники не перетинаються - зелений поширюється під синім до самого лівого вузла)
Як я можу визначити, які 2 існуючі вершини використовувати при створенні нових трикутників, щоб трикутники не накладалися так?
EDIT : Пошук найближчого краю дає кращі результати, але не ідеальні. Розглянемо цю ситуацію:
Тест "найближчого краю" неоднозначний і може повертати AB або AC (оскільки найближча точка до X для обох знаходиться в A). Бажаним результатом буде зміна, щоб утворити трикутник ACX без ребер, що перетинаються. Як я міг забезпечити цей результат? (Я краще не повинен проводити окремі випробування на перекриття крайок як перемикач крайок, якщо це можливо, оскільки я стурбований тим, що найближчий тест з краєм не обов'язково помітить, що 2 точно рівновіддалені, враховуючи питання точності з плаваючою точкою.)