ฉันมีระบบที่คุณสามารถคลิกหนึ่งครั้งเพื่อวางโหนดในฉาก เมื่อคุณวาง 3 โหนดมันจะสร้างรูปสามเหลี่ยม เมื่อคุณวางโหนดใด ๆ ในอนาคตมันจะสร้างรูปสามเหลี่ยมใหม่โดยรวมโหนดนั้นเข้ากับ 2 โหนดที่มีอยู่ใกล้เคียงที่สุด
วิธีนี้ใช้ได้ผลเกือบตลอดเวลา แต่มีข้อบกพร่องเมื่อใช้ใกล้กับสามเหลี่ยมที่มีมุมแหลมมากเพราะหนึ่งใน 2 โหนดที่ใกล้ที่สุดมักไม่ใช่สิ่งที่ควรใช้
ตัวอย่างเช่นดูภาพด้านล่าง สามเหลี่ยมสีม่วงแดงเป็นรูปแรกที่วางไว้ ถ้าฉันคลิกที่ตำแหน่งที่ทำเครื่องหมาย X สิ่งที่ฉันได้คือสามเหลี่ยมใหม่ที่มีการซ้อนทับสีน้ำเงิน สิ่งที่ฉันต้องการคือสามเหลี่ยมใหม่ที่มีการซ้อนทับสีเขียว (เช่นสมมาตรกับสีม่วงแดงหนึ่งในตัวอย่างนี้การชี้แจง: รูปสามเหลี่ยมสีเขียวและสีม่วงแดงไม่ทับซ้อนกัน - สีเขียวรูปหนึ่งทอดยาวภายใต้สีน้ำเงินหนึ่งไปยังโหนดซ้ายสุด)
ฉันจะทราบได้อย่างไรว่าจุดยอดที่มีอยู่ 2 อันที่จะใช้เมื่อสร้างสามเหลี่ยมใหม่เพื่อไม่ให้รูปสามเหลี่ยมซ้อนทับเช่นนี้
แก้ไข : การค้นหาขอบที่ใกล้ที่สุดให้ผลลัพธ์ที่ดีกว่าแต่ไม่ใช่การค้นหาที่สมบูรณ์แบบ พิจารณาสถานการณ์นี้:
การทดสอบ 'edge edge ที่ใกล้ที่สุด' นั้นคลุมเครือและสามารถคืนค่า AB หรือ AC (เนื่องจากจุดที่ใกล้ที่สุดไปที่ X สำหรับทั้งคู่อยู่ที่ A) ผลลัพธ์ที่ต้องการคือ AC เพื่อสร้างสามเหลี่ยม ACX ที่ไม่มีขอบซ้อนทับกัน ฉันจะมั่นใจผลลัพธ์นี้ได้อย่างไร (ฉันไม่จำเป็นต้องทำการทดสอบการซ้อนทับของขอบแต่ละอันในกรณีที่เป็นไทเกอร์เบรกเกอร์ถ้าเป็นไปได้เพราะฉันกังวลว่าการทดสอบขอบที่ใกล้ที่สุดนั้นไม่จำเป็นว่าจุดที่ 2 นั้นจะมีระยะเท่ากัน