gpt4 book ai didi

javascript - 使用中点圆算法生成实心圆的点

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:02 24 4
gpt4 key购买 nike

我需要在 Javascript 中生成并存储半径为 10 的实心圆的每个点的坐标。

看起来最好的方法是使用 midpoint circle algorithm ,但我不确定如何调整它以找到圆圈中的每个点。坐标将作为对象存储在数组中。

有人可以帮我实现吗?

最佳答案

我个人认为在这种情况下测试边界框中的所有像素到中心的距离可能会更快。如果<= r然后点在圆圈中,应该被推到你的数组上。

function distance(p1, p2)
{
dx = p2.x - p1.x; dx *= dx;
dy = p2.y - p1.y; dy *= dy;
return Math.sqrt( dx + dy );
}

function getPoints(x, y, r)
{
var ret = [];
for (var j=x-r; j<=x+r; j++)
for (var k=y-r; k<=y+r; k++)
if (distance({x:j,y:k},{x:x,y:y}) <= r) ret.push({x:j,y:k});
return ret;
}

关于javascript - 使用中点圆算法生成实心圆的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14611782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com