获取半径内的所有Vector2点

时间:2010-06-11 05:08:58

标签: unity3d geometry

我正在寻找一个公式,它会给出我在给定中心的某个半径范围内的所有Vector2 Points

基本上我要做的是改变特定像素内某个半径范围内256 x 256纹理中每个像素的颜色(使用Unity3d游戏引擎)。编程语言并不重要,因为我可以把它转换成我可以使用的东西。

1 个答案:

答案 0 :(得分:1)

cxcy为中心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,而是立即将某个更接近的值重置为。