题
我要寻找一个公式,给我所有的Vector2 Points
给出的中心一定半径范围内。
从本质上讲什么,我试图做的是改变一个256×256的纹理是从特定的像素(使用Unity3d游戏引擎),在一定半径内的每个像素的颜色。编程语言没有真正的问题,因为我也许可以将它转换为东西我可以用。
解决方案
让cx
和cy
是中心x和中心y和r
是半径。
r2 = r * r;
for each dy = 0 ... r
dx = 0
while (dx*dx + dy*dy <= r2)
within(cx+dx, cy+dy)
within(cx-dx, cy+dy)
within(cx+dx, cy-dy)
within(cx-dx, cy-dy)
dx++
的优化将是,不会在每次迭代复位dx
为0,但在一定值更接近马上。
不隶属于 StackOverflow