タグ

ブックマーク / www.tensyo.com (1)

  • 直線のアルゴリズム 円のアルゴリズム

    これも色々あるのですが多いのは 1)線分の始点終点で出来る長方形が交わるか? 2)線分が収まる円を描いて円同士が交わるか? 3)片方の端点から線分との距離2組みを求めて短い方 の3つくらいかな? 1)は判断を並べれば良いだけ しかし、分岐が入るとCPUは遅いので、 アセンブラレベルで大小比較結果(CF)を集めてまとめて比較するような工夫が必要です。 2)円同士が交わるかは、中心同士の距離を求めて双方の円の半径の 和(線分の長さ合計/2)との大小比較します。 hypotenuse を荒く、誤差分を安全側に判定れば(分岐予測のミスでペナルティを払うCPUでは) 1)より高速です。 3)は線分の交差判定の初段と実は同じ計算をします。 これ使うなら素直に交差判定した方がマシ GUIの為に、必要な処理です。 マウス座標をp0 線分が点p1,p2を通るとして rx:=p1.x-p0.x , ry:=p

  • 1