我要寻找一个公式,给我所有的Vector2 Points给出的中心一定半径范围内。

从本质上讲什么,我试图做的是改变一个256×256的纹理是从特定的像素(使用Unity3d游戏引擎),在一定半径内的每个像素的颜色。编程语言没有真正的问题,因为我也许可以将它转换为东西我可以用。

有帮助吗?

解决方案

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,但在一定值更接近马上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top