web-dev-qa-db-ja.com

円の端の座標を見つける

C#の使用:

中心座標と半径がある場合、円のエッジ上の(x、y)座標を特定の角度で取得するにはどうすればよいですか?

おそらく、SIN、TAN、COSIN、およびその他の10年生の数学が関係しています... :)

25
Ian Vink

これはC#とは関係ありません。含まれているのはほんの一部の初等数学です。

x = x0 + r * cos(theta)
y = y0 + r * sin(theta)

シータはラジアン、x0とy0は中心の座標、rは半径、角度はx軸から反時計回りに測定されます。しかし、C#でそれが必要で、角度が度単位の場合:

double x = x0 + r * Math.Cos(theta * Math.PI / 180);
double y = y0 + r * Math.Sin(theta * Math.PI / 180);
79
David M

ピタゴラスの定理を使用(x1、y1はエッジポイント):

x1 = x + r cos(theta)
y1 = y + r
sin(theta)

c#では、次のようになります。

x1 = x + radius * Math.Cos(angle * (Math.PI / 180));
y1 = y + radius * Math.Sin(angle * (Math.PI / 180));

ここで、すべての変数はdoublesであり、angleは度単位です

8
Alastair Pitts

Origin (j, k)、半径r、角度t(ラジアン):

   x(t) = r * cos(t) + j       
   y(t) = r * sin(t) + k
3
Daniel Vassallo