我有一个2D坐标点。我需要更改点坐标值以遵循循环路径。
我如何使用C实现它?
答案 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;
}
其中:
答案 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;