アプリ版:「スタンプのみでお礼する」機能のリリースについて

2線の交わる角度を求める式で、0での除算が発生しない方法を教えて下さい。

座標
線a ax1 = 0 , ay1 = 0 : ax2 = 12 , ay2 = 13
線b bx1 = 6 , by1 = 15: bx2 = 6 , by2 = 2

A=(y13-y0)/(x12-x0)
B=(y2-y15)/(x6-x6)   0で除算が発生

2線の交わる角度
tanθ=(A-B)/(1+AB)

片方の線が垂直だと0で除算が発生しまい、うまく計算できません。
なにか他によい方法はないでしょうか。

A 回答 (2件)

方向ベクトルの内積を考えて御覧なさい。



α = (ax1,ay1) - (ax2,ay2)
β = (bx1,by1) - (bx2,by2)
と置くと、2線の交わる角度 θ に関して、
α・β = |α||β|cosθ
が成立ちます。これで、cosθ の値が求まります。

cosθ の値から θ を求めるには、
よほど運が良くなければ、
関数電卓を使うことになるでしょう。

求まった θ は鈍角である可能性があります。
θ と π-θ のどちらが答えにふさわしいかは、
個々の例でよく考えて下さい。
    • good
    • 0

>片方の線が垂直だと0で除算が発生しまい、うまく計算できません。



当然だろう。
tanθは θ=π/2の時は定義できないから(グラフを描けば、直ぐわかるだろう)、1+AB=0の時は別に考えてやれば良い。それだけの事だよ。

余弦定理を使う手もあるが、そこまでは必要ないだろう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!