一度クリックしてシーンにノードを配置できるシステムがあります。3つのノードを配置すると、三角形が形成されます。将来のノードを配置すると、そのノードを2つの最も近い既存のノードに結合することにより、新しい三角形が作成されます。
これはほとんどの場合正常に機能しますが、2つの最も近いノードの1つは多くの場合使用すべきものではないため、非常に鋭角な三角形の近くで使用すると欠陥があります。
たとえば、次の画像を参照してください。マゼンタの三角形が最初に配置されます。次に、Xとマークされた位置をクリックすると、青いオーバーレイがある新しい三角形が表示されます。私が欲しいのは、緑のオーバーレイがある新しい三角形です。(つまり、この例では、マゼンタの三角形と対称です。明確化:緑とマゼンタの三角形は重なりません-緑の三角形は青の三角形の下で左端のノードまで延びています)
三角形がこのように重ならないように、新しい三角形を作成するときに使用する既存の2つの頂点を決定するにはどうすればよいですか?
編集:最も近いエッジを検索すると、より良い結果が得られますが、完璧な結果は得られません。この状況を考慮してください:
「最近傍」テストはあいまいで、ABまたはACを返すことができます(両方のXに最も近い点がAにあるため)。望ましい結果はACになり、エッジが重ならないACX三角形を形成します。この結果をどのように確認できますか?(可能な場合、浮動小数点の精度の問題を考えると、最も近いエッジテストでは必ずしも2つが正確に等距離にあるとは限らないので、タイブレーカーとして個々のエッジオーバーラップテストを実行する必要はありません。)