我的程序有一個List<Vector3>獨(dú)特的點(diǎn)(A、B、C、...),每次用戶繪制一條獨(dú)特的線(1、2、3...)時都會創(chuàng)建這些點(diǎn)。線存儲在 a 中List<int>,其中每兩個整數(shù)是每個點(diǎn)的索引,以形成一條線。任何兩條線都不能有相同的兩個點(diǎn),任何點(diǎn)都不能占據(jù)相同的位置,允許有雜散線。Points: {A, B, C, D, E} //Each letter represents a 2d or 3d positionSides: {0,1,1,2,1,3,3,4,4,2} //(Each int is an index in Points, every pair is a side)我試圖找到一種有效的方法來確定新線(綠色,5)何時關(guān)閉具有任意數(shù)量邊的多邊形。我有一種方法可以做到這一點(diǎn):遍歷連接到新線(以及所有后續(xù)線)每一側(cè)的每條線,直到它們共享一個點(diǎn)(D)。我唯一的問題是多邊形的邊越多,我需要做更多的檢查(多邊形上每增加兩個邊都會使我在所有連接的邊上檢查一層更深)。有沒有辦法減少關(guān)閉多邊形所需的檢查次數(shù)?與無向圖中的 Cycles不完全相同。這知道至少存在一個循環(huán)并連接到給定的一側(cè),并且只尋找連接到該側(cè)的最小循環(huán)。其他方面無關(guān)緊要,應(yīng)該避免它們。
添加回答
舉報
0/150
提交
取消