線段樹演算法 掃瞄線之面積並

2021-06-22 14:08:23 字數 439 閱讀 6890

一、掃瞄線演算法

基本思想

按掃瞄線順序,計算掃瞄線與多邊形的相交區間,再用要求的顏色顯示這些區間的象素,即完成填充工作。

對於一條掃瞄線填充過程可以分為四個步驟:

(1)  求交:計算掃瞄線與多邊形各邊的交點

(2)  排序:把所有交點按 x 座標遞增順序來排序

(3)  配對:確定掃瞄線與多邊形的相交區間,第乙個與第二個,第三個與第四個等等,每對交點代表掃瞄線與多邊形的乙個相交區間

(4)  填充:顯示相交區間的象素

存在問題1:當掃瞄線與多邊形頂點相交時,交點的取捨問題

解決方法:當掃瞄線與多邊形的頂點相交時,若共享頂點的兩條邊分別落在掃瞄線的兩邊,交點只算乙個;若共享頂點的兩條邊在掃瞄線的同一邊,這時交點作為零個或兩個,取決於該點是多邊形的區域性最高點或區域性最低點。

具體實現࿱

Atlantis(線段樹掃瞄線求面積)

output a blank line after each test case.這裡看到我寫了兩次並且兩次都用了粗體,就應該知道我wa在 了吧。坑哭了,沒看到這細節。還有乙個就是要注意這個是多組樣例的,所以千萬要記得tree陣列要初始化。我和其他人的寫法不太一樣,因為按點寫線段我實在理解不了,也不...

線段樹求矩形面積並 掃瞄線 離散化

顧名思義,掃瞄法就是用一根想象中的線掃過所有矩形,在寫 的過程中,這根線很重要。方向的話,可以左右掃,也可以上下掃。方法是一樣的,這裡我用的是由下向上的掃瞄法。如上圖所示,座標系內有兩個矩形。位置分別由左下角和右上角頂點的座標來給出。上下掃瞄法是對x軸建立線段樹,矩形與y平行的兩條邊是沒有用的,在這...

線段樹求矩形面積並 掃瞄線 離散化

顧名思義,掃瞄法就是用一根想象中的線掃過所有矩形,在寫 的過程中,這根線很重要。方向的話,可以左右掃,也可以上下掃。方法是一樣的,這裡我用的是由下向上的掃瞄法。如上圖所示,座標系內有兩個矩形。位置分別由左下角和右上角頂點的座標來給出。上下掃瞄法是對x軸建立線段樹,矩形與y平行的兩條邊是沒有用的,在這...