2013-04-10 41 views
1

在剪裁算法中有許多技術,例如Cohen-Sutherland,Cyrus-Beck算法用於2D線裁剪也有很多其他的圓形和多邊形。但我在尋找這樣的方式夾線到C++中的三角窗像圖像解釋波紋管: enter image description here剪切線爲三角形C++

所以我3箱子第一個是該行必須繪製三角形內,第二種情況是在不能繪製的三角形的外側,第三種情況下,該線在三角形內部具有終點,並且第二種情況需要被裁剪成三角形邊界,那麼對此做出最佳的方式是什麼處理性能?!

+1

第四種情況是線的兩端都在三角形外面,但是線與三角形邊界交叉。 (想想案例1,但在兩個方向上延伸線)你關心這種情況嗎? – jkerian

+0

你談論的這個案例屬於其他案例中的一個,或者屬於邏輯。 – Alyafey

+1

點產品,大量的點產品。 :) –

回答

3

這裏需要的基本原理是計算三角形各邊的交點,並計算交點是在邊界內還是在角點之外(交點算法應該給你的)。

基本上,線段AB與三角形邊CD的交點將給出一個交點時間,其中A和C表示時間= 0,B和D表示時間爲1。線段意味着它們相交,並且您需要修改正在測試的線段,以使三角形之外的點位於交點上。超出該範圍的任何值意味着您可以忽略該三角形的那一側。 (或者線段完全位於三角形之外,或者您將其與另外兩側夾在一起。)

您只需對每一邊依次執行此操作。