2017-04-13 70 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