2016-10-15 9 views
0

Vector Porjection through a pointベクトル射影

点を通過して平面上に私は平面Tangent Spaceに、平面上に黄色の星の位置を計算する必要があります。

まずは、目からベクターをピンク色の四角形で投影し、平面上に結果の場所を見つける必要があります(黄色の星を見つける)。

すべてはすでに接線空間内にあります。だから、私は、目の位置と方向、そしてピンク色の四角形の位置を、平面の中心(正接空間)に関連して知っています。

結果の黄色の星は飛行機に乗らなければなりません。従って、青い矢印の方向に関するその位置は常にゼロでなければならない。上の画像では、緑と赤の矢印に対する位置が正の値を持ちます。

私はVector Projectionのような数学を使ってこれを行う方法を解明しようとしてきましたが、私の周りに頭を包んでいるようには見えません。

+0

'z = 0'の(視力の)線の方程式を解きます。 – ja72

答えて

1

したがって、カメラは、3次元位置ベクトルrと方向ベクトルeを持っています。平面は

x = r_x + t * e_x 
y = r_y + t * e_y 

私はすべてが既に沿っブルー所望の座標系で表現されているものとあなたは

z = r_z + t * e_z = 0 } t = -r_z/e_z 

座標直線の方程式に使用次いで、z=0によって定義されますz-軸。

+0

ありがとう!私は16時に高校を辞めて笑ってくれるのではないかと思う。はい、すべてが接線空間/座標系にあります。私は** e **は_normalized_ベクトルでなければならないと仮定します。これをテストするには少し時間がかかりますが、後で戻ってきて、これが機能すれば答えとしてマークします。 :) – user2236034

+0

実際には** e **は正規化されていませんが、ゼロ以外の_z_軸成分を持たなければなりません。正規化されている場合、 't'は点の_xy_平面からの距離です。 – ja72

+1

私は 'y =((p.y <0)?-y:y);'なぜそれを追加する必要があったのですか。 :)そして私の飛行機のほとんどすべてのために、私はスワップxとyを使用しなければなりませんでした。最終的には、飛行機にあるテクスチャからピクセルを読み取っていることがあります。実際には、「希望の座標系」にすべてがあるわけではありません。しかし全体的に、軽微な調整で、動作しています! Thx:D – user2236034

関連する問題