第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

確定多邊形何時被新邊閉合

確定多邊形何時被新邊閉合

C#
Qyouu 2021-07-06 13:18:56
我的程序有一個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)該避免它們。
查看完整描述

1 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個贊

這一切都取決于您需要的優(yōu)化級別。對于簡單的圖片(例如< 10 - 100k 行),您每次都可以運(yùn)行 BFS。

高級算法:

首先,您需要使用Graph 表示之一來存儲圖形。然后,每當(dāng)用戶畫一條線時,您就取兩個點(diǎn)中的任何一個并在該點(diǎn)上進(jìn)行BFS。

如果您可以使用 BFS 到達(dá)同一點(diǎn)并且路徑長度 > 2,那么您就有了一個多邊形。

問題是,由于圖形是雙向的,因此您在遍歷它時需要小心。不要重新訪問您已經(jīng)訪問過的節(jié)點(diǎn)。


查看完整回答
反對 回復(fù) 2021-07-10
  • 1 回答
  • 0 關(guān)注
  • 216 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號