タグ

2010年1月29日のブックマーク (3件)

  • 3年D組モチヲ先生

    平面と直線の交点を求めます。 A:直線上のある点 V:直線の方向ベクトル P:平面と直線の交点 N:面の法線ベクトル P0、P1、P2:平面上の点(反時計回り) 直線の方程式 P = A + Vt 法線ベクトル 平面の3点P0、P1、P2、から平面の法線ベクトルNを求めることができます。 外積を使って求めます。求めたNは正規化しておきます。 N = ( P1 - P0 ) × ( P2 - P0 ) 平面の方程式 N ・ P + d = 0 法線ベクトルNで点P0を通る平面の方程式 法線ベクトルNとベクトル(P−P0)の内積が0になれば垂直です。 (点P0は平面上の点であればどれでもかまいません。) N ・ ( P - P0 ) = 0 これらの式を使って交点Pを求めます。 平面の方程式N・P+d=0に直線の方程式P=A+Vtを代入して媒介変数tを求め

    jak180
    jak180 2010/01/29
    ベクトル 面と線
  • スクリーン上の位置からモデルを選択

    今回のサンプルではマウスカーソルの位置にあるモデルを選択できるようにしています。カーソルをモデルに合わせると、Hit テキストが True に変化します。 スクリーン座標から3次元空間座標へ変換  マウスなどで3次元空間上のモデルなどを選択したい場合があると思います。この場合は、スクリーン上の2次元座標点からモデルの存在する3次元座標に変換してあたり判定などを行う必要があります。 しかし、2次元から3次元に要素を拡張するため、X,Y のみの2次元のスクリーン座標から、3次元座標の点を求めることはできません。たとえば、実際に画面をクリックするイメージを考えてもらうとわかるかと思いますが、クリックしたときの3次元空間の位置が、オブジェクトよりも手前の位置なのかオブジェクト自体なのか、はたまたオブジェクトの奥なのかを判定することはできません。 そのため、クリックした位置は点で表すのではなく、カメ

    jak180
    jak180 2010/01/29
    DirectX managed C# スクリーン辺kな
  • 射影変換行列の説明

    3Dのオブジェクトを画面に描画するための幾何学的な計算を考えてみましょう。 まず(全ての)基準となる座標系を定めます。これをワールド座標とかグローバル(大域)座標とか 絶対座標とか呼ぶようです。うちではワールド座標と呼ぶことにします。 次にオブジェクトに回転平行移動などを施してワールド座標でのオブジェクトの位置・方向を決定します。 見かたを変えてオブジェクトがオブジェクトに固有の座標系(これをローカル座標と呼びます)を基準として 作られていると考えると、オブジェクトのワールド座標から見た位置・方向というのは ローカル座標のワールド座標から見た位置・方向であり、ワールド座標でのオブジェクトの 位置・方向を決定するというのはローカル座標からワールド座標への変換ということになります。 …わかりづれ〜な。まぁやってることはどっちも同じです。こいつをワールド変換と呼びましょう。 さ

    jak180
    jak180 2010/01/29
    DirectX managed C# スクリーン変換