在Illustrator中,您可以拖動一個矩形並選擇其中的所有對象。它超越了邊界框測試,因爲它確保了它觸及多邊形的實際部分。那麼它如何有效地做到這一點?如果要檢查是否多邊形P的任何部分是一個矩形R內(AC或C++實現將是優選的)矢量繪圖應用程序如何做到這一點?
由於
在Illustrator中,您可以拖動一個矩形並選擇其中的所有對象。它超越了邊界框測試,因爲它確保了它觸及多邊形的實際部分。那麼它如何有效地做到這一點?如果要檢查是否多邊形P的任何部分是一個矩形R內(AC或C++實現將是優選的)矢量繪圖應用程序如何做到這一點?
由於
,則可以做到這一點:
您也可以只是構造矩形與對象的交集(像Illustrator這樣的程序已經有很多其他用途的函數)並檢查它是否爲非空。更高效的算法可用(請參閱caf的答案),但我的優點是不需要額外的代碼。
它是否選擇完全在矩形內的所有對象?如果是這樣,那麼你可以快速修剪二維「質心」或任何你認爲是中心的東西,我想。雖然我不完全明白這個問題。看起來像一個邊界框仍然可以提供幫助。此外,有多少物體應該足夠快地工作?它可以限制在100,1000,10000等還是沒有限制? – 2010-08-11 02:31:35
請您詳細說明一下,輸入和輸出是什麼?另外,'ensres'是什麼意思? – 2010-08-11 02:32:16
輸入=矩形和封閉曲線列表。輸出=與矩形相交的曲線。 Ensres =確保。 – Potatoswatter 2010-08-11 02:34:45