2017-04-13 83 views
0

我試過看過關於這個話題的所有其他文章,但是我沒有找到任何東西。我的問題是,如果給定矩形的四個角點,我怎麼能夠找到任何位於矩形內部或矩形上的點,而不管它是否旋轉。我的目的是,我有一個數組代表一個地圖,每個索引代表一個點位置,我希望能夠在這個地圖上放置一個矩形並填充它覆蓋的任何點。如果可以提供僞代碼以及數學,我將不勝感激。我熟悉java和RBX.Lua查找矩形內的所有點?

+0

可能的重複http://stackoverflow.com/questions/17136084/checking-if-a-point-is-inside-a-rotated-rectangle。 – lhf

回答

0

我不知道如果這是你在找什麼...

但仍然是一個簡單的方法來解決這個問題將是,連接四點使用線條繪製算法並應用簡單的填充填充或邊界填充算法。

注意:所有這些算法都屬於計算機圖形學。 同樣,這種技術比逐個填充內點要快得多,同時也消除了矩形外點的計算。

在應用填充之前,您必須使用畫線算法繪製邊界線並將邊界值設置爲newcol(newcolour),然後可以使用下面的填充算法。

void floodfill(int x,int y,int old,int newcol) 
{ 
      int current; 
      //assign current with the color of x,y point 

      if(current==old) 
      { 

          //assign x,y point with newcol 

          floodfill(x+1,y,old,newcol); 
          floodfill(x-1,y,old,newcol); 
          floodfill(x,y+1,old,newcol); 
          floodfill(x,y-1,old,newcol); 
      } 
} 

您可以用上面的方法,你只需要通過矩形老色是用新的顏色替換的任何內部點(X,Y)。 假設顏色值是您提到的數組中的整數值。

enter image description here