ベクトルu
を抽出する式を導き出そうとしています。平面に平行で他のベクトルに垂直なベクトルを見つけるアルゴリズム
私はいくつかの初期データを与えている:
- プレーン
F
をする方法で、通常のn = F->normal()
抽出すること。 F
内にはなく、面番号E
を通過し、平面F
内にはないベクトルc
があります。
および使用するいくつかの制約:
- 所望のベクター
u
ベクトルc
に垂直です。 - ベクトル
u
も、与えられていないベクトルに垂直です。ベクトルr
は、平面F
に平行であり、ベクトルc
にも垂直です。したがって、ベクトルc
,r
およびu
はと言うことができます。
*
をドットプロダクトとし、^
演算子を2つの3dベクトル間のクロス積とします。
ベクトルu
の計算は、積:vec3 u = c^r
を使用すると簡単です。したがって、私の全体の仕事は、与えられた平面F
に平行であり、同時に与えられたベクトルに垂直であるベクトルr
を見つける方法をに絞り込んだc
です。
がF
と平行であることがわかっているので、私たちは飛行機のノーマルとドットプロダクト:n*r = 0
を使用できます。 r
は不明であるので、無限の数の線が上記の式を満たすことができる。したがって、r
がc
:r*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
を抽出するために必要なものはありますか?それとも私の論理に欠陥がありますか?
あなたの表記法を使用して:r = c^n – coproc
rはFに平行であるので、nと直交します。したがって、nとcの両方に垂直なベクトルを探しています。これは、クロス積n^cで求められます。 –