タグ

algorithmとmathに関するsatojkovicのブックマーク (3)

  • 点の多角形に対する内外判定

    点が多角形ループの内側にあるか外側にあるかを判定するには? 要素は2次元空間内に存在するものとします。 解説 内外判定の基的な考え方として、「内外を判定したい点から発するレイ(ray:一条の光)を仮定し、レイが多角形の辺を何回横切るかを数え、偶数回横切るとき、点は多角形の外側、奇数回横切るとき、点は多角形の内側と判定することができる」という考え方があります。 ただ、この考え方に従って実装を行うと、レイに対して点接触になる点のある多角形や、レイに対して線接触になる辺のある多角形の場合に判定を誤ってしまう実装になることがあります。 下に示す実装では、レイをXプラス方向に発して、多角形の辺がレイを、「上から下に横切るときには横切り回数を1引き、下から上に横切るときには横切り回数を1足すこととする」ことや、「レイの線上にある点はレイより上にあることとする」ことにより、レイに対して点接触になる点の

  • http://homepage3.nifty.com/katamari/knowledge/knowledge1/knowledge1.html

    多角形の内部か外部かを判定 落雷データの解析で、何県に落ちているかを判定するときに使ったものです。 ある点が多角形の内部にあるか外部にあるか判定するには、その点から下に垂線を引き、垂線が多角形と何回交わるかによって判定します。奇数回交わればその点は内部、偶数回交われば外部にあることになります。 線分の交差判定 線分 a = a2 - a1 と線分 b = b2 - b1 が交差している場合,線分 b の端点 b1 と b2 は必ず線分 a の両側にあります。また,線分 a の端点 a1 と a2 も必ず線分 b の両側にあります。逆に交差していない場合,線分 a か線分 b のどちらかから見て,両点ともに片側にある場合が必ずあるといえます。 ある点が線分(ベクトル)の左側にあるか右側にあるかというのは,外積を使えば判定できます。sinは0度~180度で正の値,180度~360度で負の値

  • http://homepage2.nifty.com/skimp-studio/htm/crawl_top.htm

    Crawl 3Dプログラム(3Dのグラフィックや動きを扱うプログラム)入門コーナーです。 1.骨 1-1.ベクトル其の壱 1-2.ベクトル其の弐 1-3.ベクトル其の参 1-4.行列其の壱 1-5.行列其の弐 1-6.座標変換其の壱 1-7.座標変換其の弐 1-8.座標変換其の参 1-9.座標変換其の四 1-10.骨其の壱 2.球 2-1.微分其の壱 2-2.微分其の弐 2-3.積分其の壱 2-3.積分其の弐

  • 1