これは簡単な質問だと思いますが、私の現在のコードでは奇妙な結果が出ています。理由を完全に理解するための数学の背景はありません。私の目標は、タイトルに記載されているように単純です:私はちょうど中心点からいくつかの距離と角度でポイントを見つけるしたい。C#の角度から円の円周上の点を計算する?
私の現在のコード:一般的に
Point centerPoint = new Point (0, 0);
Point result = new Point (0, 0);
double angle = 0.5; //between 0 and 2 * PI, angle is in radians
int distance = 1000;
result.Y = centerPoint.Y + (int)Math.Round(distance * Math.Sin(angle));
result.X = centerPoint.X + (int)Math.Round(distance * Math.Cos(angle));
が、これはかなり合理的に動作しているようですが、私は様々なスポットでの問題を取得し、最も顕著な角度が負のxとy軸上の点に対応するとき。明らかに私は間違ったことをしています - それは何であるかの考えですか?
更新:これは私の間違いでした。このコードはうまくいきます - 実際には動作しなかったいくつかの異常値は、1.5PIの角度の計算方法のバグが原因でした。私は十分にそれをチェックしたと思ったが、明らかにそうではなかった。皆さんのおかげで、上記の作業コードが他の人にとって参考になることを願っています。あなたはラジアンにしているので、
あなたは "私は様々なスポットでの問題を取得する" とはどういう意味ですか? –
は意図的に使用されていないcenterPointですか? resultにcenterPoint.Xと.Yを追加しないでください。 – spender
問題の例を挙げることはできますか? –