1. ホーム
  2. algorithm

[解決済み] 3点から角度を計算するには?[閉じる]

2022-09-05 03:52:35

質問

これがあるとします。

P1 = (x=2, y=50)
P2 = (x=9, y=40)
P3 = (x=5, y=20)

仮に P1 は円の中心点であるとする。それは常に同じである。 で構成される角度が欲しい。 P2P3 に隣接する角度、言い換えれば P1 . 正確には内角です。これは常に鋭角で、-90度より小さい角度になります。

私は思った。これは単純な幾何学の計算だ。しかし、もう 6 時間くらい公式を探しているのですが、arccos やベクトルスカラー積のような複雑な NASA のものについて話している人しか見当たりません。頭が冷蔵庫の中に入っているような感じです。

これが簡単な問題だと思う数学の達人がここにいるのでしょうか?プログラミング言語はここでは重要ではないと思いますが、重要だと思う人のために:Java と objective-c です。 私は両方に必要ですが、これらのためにタグ付けしていません。

どのように解決するのですか?

P1が頂点となる角度のことであれば、P1が頂点となるように コサインの法則 を使えばうまくいくはずです。

アークコス ((P 12 2 + P 13 2 - P 23 2 ) / (2 * P 12 * P <サブ 13 ))

ここでP 12 はP1からP2までの区間の長さで、次の式で計算されます。

sqrt((P1 x - P2 x ) 2 + (P1 y - P2 y ) 2 )