2017-10-06 14 views
0

写真から分かるように、私はラインと2点(p1とp4)を持っています。私がする必要があるのは、ライン上のp1/p4の点をスナップし、atan2を使って(p1とp2)と(p3とp4)の間の角度を計算することです。atan2の仕組みはどうですか?どの角度が実際に計算されますか?

var anglep1p2 = Math.atan2(p2[1] - p1[1], p2[0] - p1[0]) * 180/Math.PI; 
var anglep4p3 = Math.atan2(p4[1] - p3[1], p4[0] - p3[0]) * 180/Math.PI; 

anglep1p2が103.66797855556482 anglep4p3が計算され-76.74971541138642

が、私はそれらの値を計算するにatan2ないか疑問に計算されます。今、私は2つの式がありますか?任意のヘルプ

enter image description here

答えて

0

これらの答えを おかげでメイクセンスを行う。あなたは正のx軸から始まる1行の角度を計算しています。 anglep1p2の計算方法は、からp1からp2までの線に相当します。

開始点p1(座標系を図のp2に配置)に座標系の起点を置くと、正のx軸から描画した線までの回転数が得られます。 90度を少し超えると直感的に理解できます。

あなたの2番目の結果が最初のものから反転します(変数名と同じ順序でp4/p3を使用しましたが、p1/p2の場合はこの順序を逆にしました)。混乱を避けるために、私はp1/p2の場合を理解するために使用し、それから他のケースに同じ方法で適用します。


特定のジオメトリ/リレーションシップの問題がある場合は、詳細を説明する必要があります。より具体的に助けてもらえるかもしれません。

関連する問題