• 締切済み

線分の交点

1点を通り、ある角度を持つ、無限長の線分を定義する構造体 struct LongLine{ CPoint p; double dAngle; }; を作りました。 これを使って2つの線分の交点を求める関数を作りたいと思いますが、なかなかできかません。

みんなの回答

回答No.3

dAngleということは単位は度かな? ラジアンにすると θ = dAngle × π/180 で、θをx軸からの傾きとすると、 y = ax + b  の a は arctan(θ) これでいいっすか?

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

2つの線分をL1, L2と置きます。 L1上の点pを媒介変数tを使って表すと、 p(cos(L1.dAngle)*t+L1.p.x, sin(L1.dAngle)*t+L1.p.y) のような感じになります。 点pを通り、角度L2.dAngleの直線は… その直線が(L2.p.x, L2.p.y)を通るので… とすると、tが算出できて、点p(t)の座標に代入すると、交点が求まる。 なんてのも1つのアルゴリズムです。 -- > 関数を作りたいと思いますが、 関数の戻り値の型は? 関数の引数の数は?型は? > なかなかできかません。 どういう考え方をしたか? その結果、どこで詰まったか? なんて事を書かれては?

回答No.1

それで、ご質問はなんですか? y = ax + b の形式に変換すれば、あとは連立方程式を解くだけ。

関連するQ&A