如何计算圆圈在另一个圆圈内的位置?

How to calculate position of circle inside another circle?

我正在尝试计算一个圆在另一个圆内旋转时的 x,y 点,如图所示。

给定角度,计算内圆的 x,y 值所需的数学公式是什么?


javascript中的解决方案:

function innerX(angle) {
    var rad = toRadians(angleOffset(angle));

    var sx = cx + (R-r)*Math.cos(rad);

    return sx;
}

function innerY(angle) {
    var rad = toRadians(angleOffset(angle));

    var sy = cy + (R-r)*Math.sin(rad);

    return sy;
}

function topLeft(angle) {
    var sx = innerX(angle);
    var sy = innerY(angle);
  
    var tl = [sx - r, sy -r];

    return tl;
}

查看完整代码: https://jsfiddle.net/axmjh45u/2/

大圆心cx, cy,大圆心R,小圆心r,可以看出小圆心为

sx = cx + (R-r)*cos(angle - Pi/2)
sy = cy + (R-r)*sin(angle - Pi/2)

所以外接矩形坐标为

top = sx - r
left = sy - r
and similar for right, bottom

我加了-Pi/2求和因为你的零角对应-Pi/2 (270 or -90 degrees)方向