如何将矩形选择转换为圆(在网格中)

时间:2017-04-26 13:44:50

标签: algorithm

我在矩形2d网格的一小部分上应用函数。代码看起来像这样 -

for(int x = startX; x < endX; ++x)
{
 for(int y = startY; y < endY; ++y)
 {
    Function(grid[x+y*stride]); 
 } 
} 

现在我想要圆形而不是矩形来应用相同的功能,但忘记了:S请帮助

1 个答案:

答案 0 :(得分:1)

看起来这对我来说是

bool isInside(int circle_x, int circle_y, int rad, int x, int y)
{
    // Compare radius of circle with distance of its center from 
    // given point
    if ((x - circle_x)*(x - circle_x) +
        (y - circle_y)*(y - circle_y) <= rad*rad)
        return true;
    else
        return false;
}

for(int x = startX; x < endX; ++x)
{
 for(int y = startY; y < endY; ++y)
 {
   if(isInside(centerX,centerY,Radius,x,y))
   {
      Function(grid[x+y*stride]); 
   }
 } 

}