跳转到主内容

圆上坐标

求圆上一点的坐标

计算圆上一点的坐标,通常取决于你已知的信息(如角度、圆心位置等)。最常用的方法是使用三角函数

calc-coor

标准圆 (圆心在原点)

如果圆心位于坐标系原点 $(0, 0)$,半径为 $r$,且该点与 $x$ 轴正方向的夹角为 $\theta$,则该点的坐标 $(x, y)$ 为:

$$x = r \cdot \cos(\theta)$$$$y = r \cdot \sin(\theta)$$

一般位置的圆 (圆心不在原点)

如果圆心的坐标为 $(x_c, y_c)$,半径为 $r$,夹角为 $\theta$,则坐标计算公式需要进行平移:

$$x = x_c + r \cdot \cos(\theta)$$$$y = y_c + r \cdot \sin(\theta)$$

注意事项与技巧

  • 弧度制转换

    在大多数编程语言(如 C#、C++、Python)中,三角函数 cos 和 sin 使用的是弧度而非角度。

    • 转换公式:$\text{弧度} = \text{角度} \cdot \frac{\pi}{180}$
  • 坐标系方向

    • 在数学坐标系中,$y$ 轴向上为正,角度逆时针增加。
    • 在计算机图形学或屏幕坐标系中,$y$ 轴通常向下为正。如果你发现旋转方向反了,可以尝试将 $y$ 的计算改为 $y = y_c - r \cdot \sin(\theta)$。
    • 圆周运动 / 等分点: 如果你需要计算圆上的 $n$ 个等分点,第 $i$ 个点的角度为: $$\theta_i = \frac{360^\circ}{n} \cdot i$$

代码参考(C#/Unity)

 1// 示例:计算角度为 45 度的点
 2float angleDegrees = 45f;
 3float radius = 5f;
 4Vector2 center = new Vector2(10, 10);
 5
 6float angleRadians = angleDegrees * Mathf.Deg2Rad;
 7float x = center.x + radius * Mathf.Cos(angleRadians);
 8float y = center.y + radius * Mathf.Sin(angleRadians);
 9
10Vector2 pointOnCircle = new Vector2(x, y);