如何根据 JavaScript 中与头部圆的距离生成新的随机圆?

How to generate new random circles based on distance from head circle in JavaScript?

我在 JavaScript 中的 canvas 范围内的随机位置画了一个圆圈。

我想在距离第一个圆的中心特定距离 (200) 的随机位置上再生成 2 个圆。

有一种方法可以生成新坐标直到距离等于200,但应该有更好的解决方案吧?

我怎样才能做到以下几点?

代码:

var x = getRandomInt(200, 800)
var y = getRandomInt(200, 400)
var r = 60
drawCircle (x, y, r)

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min
}

function drawCircle(x, y, r) {  
    context.beginPath()
    context.arc(x, y, r, 0, 2 * Math.PI, false)
    context.fillStyle = "#fc3358"
    context.fill()
    context.closePath()
}

您可以使用毕达哥拉斯定理找出所有距离为 200 的点。你基本上是在寻找一个半径为 200 的圆。所以最后你会得到一个函数,你将那只小狗插入并为其分配随机值。看看距离公式,它可能会清楚这个概念。

您可以使用上面加布里埃尔指出的毕达哥拉斯定理。如果你不想计算所有点,你可以分配一组数字是随机的,然后你可以操纵定理计算第二个数字:b = Sqrt(c^2 - a^2)

要生成与中心点 (CX, CY) 距离为 R(此处为 200)的随机角度的点,请使用简单的三角公式:

Phi = Random * 2 * Math.PI; //Random in range 0..1
X = CX + Round(R * Cos(Phi));
Y = CY + Round(R * Sin(Phi));