0

重複の可能性:
円の中心からの点の角度を見つける

円を想像してください。円の頂点と同様に、中心点は固定されています。私が望むのは、円の周り (または円の外側) のどこかに 3 番目の点を与え、中心から頂点までの角度を 0-359 から取得することです。(私は実際に素敵な写真を図解しましたが、私は新しくて投稿できません)

いくつかのコンテキストを与えるために、円は小さな惑星であり、接線で建物のベースと一緒に表面に小さな建物を配置したいと思います. 建物のビットマップの回転角度が必要です。

編集:助けてくれてありがとう、私はまだこれに苦労しています。私がアンドロイドを使用していて、y0座標が一番上にあるのは関係あるのでしょうか? 他のプラットフォームでは逆ですか?計算に影響しますか?

解決策:私はアンドロイドで、y座標は上から下に数えられるため、a - witha +を変更する必要がありました

degrees =  Math.atan2(x - centerX, -y + centerY);
// and to make it count 0-360
if (degrees < 0) {degrees += 2 * Math.PI;}
4

2 に答える 2

4

を使用Math.atan2()して、東からラジアンで角度を取得し、必要に応じて回転および変換します。

ご想像のとおり、 はNOTとしてatan2定義されていることに注意してください。atan2(y, x)atan2(x, y)

于 2013-01-07T10:51:44.553 に答える
0

中心と点の間の水平方向の距離と垂直方向の差を取得し、一方を他方で割り、結果をメソッドに渡しMath.asin(double)ます。

結果はラジアン単位の角度になります。度数が必要な場合は の方法をご利用いただけますMath.toDegrees(double)。ただし、私が知っているほとんどの API はラジアンを好みます。

于 2013-01-07T10:56:45.510 に答える