2011-09-15 12 views
2

私は2次元座標を持つ点を持っています。私は円の経路に従うためにポイントの座標値を変更する必要があります。円の周りの点を移動する

Cを使用してどのように実装しますか?

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

をし、ループ内でPHIを変更:

+2

あなたはポイントを円周にする必要がありますか?どのようなxとyの増分ですか?半径と中心点は何ですか?この宿題ですか? –

+4

'#include 'と 'sin()'と 'cos()'を使います。何を試しましたか? – pmg

+0

極座標を使用してパスを記述します。 –

答えて

6

あなたは極座標を使用することができます。

11

使用罪と

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

ここCOS:

  • (X_0、Y_0)は円の中心である
  • RはRADUIS
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を増やして、ステップサイズを調整できます。

+1

**強い**理由がない場合は、Cで 'double'を使用することをお勧めします。コード内の浮動小数点変数と定数はすべて' double'型でなければなりません。 – pmg

0

y軸についてsin()をcos()と混同していると思います。コードは次のとおりです。 point_y = radius * sin(ctr * 3.1415926f/180.0f)+ center_y;

関連する問題