タグ

2018年9月20日のブックマーク (3件)

  • 平面幾何におけるベクトル演算 » 直線と線分

    で求まります(ここで |x×y| は実数に対する絶対値, |x| はベクトルに対する絶対値と「絶対値」の意味が異なっている点に注意してください)。 コーディングは以下の通りです*1: // 点a,bを通る直線と点cとの距離 double distance_l_p(P a, P b, P c) { return abs(cross(b-a, c-a)) / abs(b-a); } 線分と点の距離 今度は線分と点の距離を考えてみましょう。 距離としてどのような値が欲しいのか,というのは問題依存なのですが, ここでは一般的な距離の定義に従って,点から「線分のどこか」への最短距離としてみます。 そうすると,線分 ab に垂直な直線で点 a を通る直線と点 b を通る直線に囲まれた領域(下図の左の赤色領域に相当)にある点であれば, 点から直線 ab への垂線が最短距離になります。 また,点 c がこ

  • もっと簡単に-線分交差判定-

    ここでは、線分交差判定の定石ともいえる方法を紹介しています。 線分と直線の見落としがちな大切な定義です。

  • 2D衝突編 その10 線分と線分の衝突

    ホーム<ゲームつくろー!<衝突判定編 2D衝突編 その10 線分と線分の衝突 2Dの線分と線分の交点を求める問題は色々な局面で出てきます。直線同士と違い、線分は端が切れていますのでその分の処理が必要になりますが、最終的なアルゴリズムは極めてすっきりです。 ① 線分同士の衝突判定 線分の表現は2つの端点、もしくは始点とベクトルで表すのが普通です。より具体的な情報を持っているのは始点とベクトルの表現なので、ここでもそれを使います。 始点をS、終点に向けたベクトルをvとします。この時2つの線分を引き伸ばした直線は交差するか並行かのどちらかです。平行の判定は簡単で、2つの線分の方向ベクトルv1とv2の外積を取って0になったら平行です。平行でない場合は交点が1つ定まります。2直線の交点は次のように考えます: S1から交点へ伸ばしたベクトル(v1')はベクトルvとt2・v2の合成ベクトルです。つまりV