垂直于矢量上的点处的矢量

时间:2013-04-04 19:06:59

标签: computational-geometry normals geometry-shader

我正在使用一个模型,我必须在连接这些点的线上的点p3处计算与p1和p2(3d)的矢量垂直。

这个安排会像p1 -------- p3 --------- p2。有时这个p3可能与p1或p2重合。

我知道如何使用点积和决定比来计算向量p1-p2的垂直向量。但是如何让它通过这一点p3?

我将在几何着色器中进行计算..!

任何想法..?

2 个答案:

答案 0 :(得分:1)

有一些误解:

  • 矢量没有位置:垂直矢量在空间中无处,它只是一个方向

  • 要确定法向量,通常的方法是使用交叉积,而不是点积(尽管你仍然可以使用带有代数的点积,例如生成随机向量并删除其切向分量)

  • 您可能想要创建一个源自p3且与p2-p1垂直的线段:在这种情况下,因为您提到您已经能够生成法线向量(我们称之为V)然后绘制这样一条线将包括在p3处放置一个顶点,在p3 + a * V处放置另一个顶点,其中“a”是将决定段长度的任何正值

答案 1 :(得分:0)

WhitAngl是对的。你的向量中也不受约束。有一个平面P通过点p3(垂直于p1-> p2),P中包含的任何向量都将满足您的条件。如果特定向量无关紧要,我使用了以下技术:

  • 以x轴向量(1,0,0)
  • 开头
  • 投射到飞机P
  • 如果投影为零长度,则选择y轴向量(0,1,0)并再次尝试,或z轴再试一次

P的平面方程可以直接从p1和p2导出(|| p2-p1 ||是平面的法线,然后使用p3作为P的定义点)。