◆ わからない問題はここに書いてね 212 ◆
■ このスレッドは過去ログ倉庫に格納されています
0299132人目の素数さん
2007/03/09(金) 00:49:13直線A1-A2: f(x,y) = (y2-y1)(x-x1) - (x2-x1)(y-y1) = 0,
直線B1-B2: g(x,y) = (y4-y3)(x-x3) - (x4-x3)(y-y3) = 0.
直線で分けられた領域の一方は正領域、他方は負領域である。
2点 B1,B2 が直線A1-A2の両側にある ⇔ f(x3,y3)・f(x4,y4) ≦0,
2点 A1,A2 が直線B1-B2の両側にある ⇔ g(x1,x2)・g(x2,y2) ≦0.
A1-A2 と B1-B2 が交差する ⇔ f(x3,y3)*f(x4,y4) ≦0 かつ g(x1,x2)*g(x2,y2) ≦0
かな?です。
http://prog-etc.bbs.thebbs.jp/1168995928/58
【ザ】C言語質問所
>216
領域とか持ち出すよりも, 2つの直線の交点をそれぞれの線分が通っているかどうか調べる方が楽でしょう.
式で書くと, 交点が(x, y) のとき
((y-y1)*(y-y2) <= 0) && ((y-y3)*(y-y4) <= 0)
で分かるでしょう. (但し 場合分けが要る?)
http://prog-etc.bbs.thebbs.jp/1168995928/61
【ザ】C言語質問所
■ このスレッドは過去ログ倉庫に格納されています