2017-02-01 6 views
1

ベクトルuを抽出する式を導き出そうとしています。平面に平行で他のベクトルに垂直なベクトルを見つけるアルゴリズム

vector-plane-vector setup image

私はいくつかの初期データを与えている:

  1. プレーンFをする方法で、通常のn = F->normal()抽出すること。
  2. F内にはなく、面番号Eを通過し、平面F内にはないベクトルcがあります。

および使用するいくつかの制約:

  1. 所望のベクターuベクトルcに垂直です。
  2. ベクトルuも、与えられていないベクトルに垂直です。ベクトルrは、平面Fに平行であり、ベクトルcにも垂直です。したがって、ベクトルc,rおよびuと言うことができます。

*をドットプロダクトとし、^演算子を2つの3dベクトル間のクロス積とします。

ベクトルuの計算は、積:vec3 u = c^rを使用すると簡単です。したがって、私の全体の仕事は、与えられた平面Fに平行であり、同時に与えられたベクトルに垂直であるベクトルrを見つける方法をに絞り込んだcです。

Fと平行であることがわかっているので、私たちは飛行機のノーマルとドットプロダクト:n*r = 0を使用できます。 rは不明であるので、無限の数の線が上記の式を満たすことができる。したがって、rcr*c = 0に垂直であるという条件を使用することもできます。を要約する

、ベクトルr見つけるために私たちを助けるべき2ドット積の式があります。しかし、私は苦労していますベクトルを取得する方法を把握しようとしている

r*c = 0; 
r*n = 0; 

r座標はアルゴリズム的に2つの方程式を提供しました。 r = (x, y, z)と仮定して、x,yおよびzを探したいと思う。

x*c.x + y*c.y + z*c.z = 0; 
x*n.x + y*n.y + z*n.z = 0; 

私は何かが欠けていると感じます。たとえば、3番目の制約が必要です。 x,yおよびzを抽出するために必要なものはありますか?それとも私の論理に欠陥がありますか?

+0

あなたの表記法を使用して:r = c^n – coproc

+0

rはFに平行であるので、nと直交します。したがって、nとcの両方に垂直なベクトルを探しています。これは、クロス積n^cで求められます。 –

答えて

2

nとcの外積を計算することで、ベクトルrを見つけることができます。

この自動的に満足されますr.c = r.n = 0

あなたの二つの式は、複数のソリューションを持っていることを右です。他の解はrの任意のスカラー倍数で与えられる。

関連する問題