围绕圆形路径移动一个点

时间:2011-09-15 21:07:00

标签: c math

我有一个2D坐标点。我需要更改点坐标值以遵循循环路径。

我如何使用C实现它?

4 个答案:

答案 0 :(得分:12)

使用sin和cos

for (double t = 0; t < 2*Pi; t += 0.01) {
    x = R*cos(t) + x_0;
    y = R*sin(t) + y_0;
}

其中:

  • (x_0,y_0)是圆圈的中心
  • R是raduis

答案 1 :(得分:6)

您可以使用极坐标:

X = R * cos (phi) + center_X
Y = R * sin (phi) + center_Y

并更改循环中的phi。

答案 2 :(得分:6)

或者角度而不是弧度......

#include <math.h>

void Circle(float center_x, float center_y, float radius)
{
    float point_x, point_y;
    int ctr;
    for (ctr = 0; ctr < 360; ctr += 1)
    {
        point_x = radius * cos(ctr * 3.1415926f / 180.0f) + center_x;
        point_y = radius * cos(ctr * 3.1415926f / 180.0f) + center_y;
    }
}

围绕中心点绘制一个圆,每次1度。您可以增加任意数量的ctr来调整步长。

答案 3 :(得分:0)

我相信你为y轴的sin()混淆了cos()。代码应该是: point_y = radius * sin(ctr * 3.1415926f / 180.0f)+ center_y;