计算三维空间中三角形的垂直平面

时间:2010-03-10 05:35:15

标签: vector 3d polygon

我在3D空间中有一个由3个顶点p0,p1和p2定义的三角形。

我希望在这个3D空间中计算一个平面,该平面位于p0和p1两侧并面向第三个点p2。

该平面由位置和标准化方向/

定义

除了沿p0和p1放置并面向p2之外,平面还应垂直于由p0,p1和p2创建的平面

我已经挣扎了很长一段时间,任何人都能提供的任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:3)

你的问题不合适。对于位于p0和p1上的任何平面,该平面上将存在“面向”点p2的某个点。所以剩下要计算的是沿着p0和p1的某个平面。

normal = normalize(cross(p1-p0, pX-p0))  //pX is anything except p1
planePoint = p0

编辑:查看评论

这是我的评论解释的一个例子

八度:14 - ; P0
p0 =

0 0 0

八度:15 - ; P1
p1 =

0 0 5

八度:16取代; P2
p2 =

5 0 0

八度:17>交叉(p1-p0,交叉(p1-p0,p2-p0))
ans =

-125 0 0

您会注意到该标志是错误的,请使用交叉产品中的参数顺序以使其面向正确的方式。另外不要忘记归一化......但它不会影响方向。还检查以确保每个交叉产品后的标准不接近0,否则没有唯一的答案..(三角形形成一条线)

答案 1 :(得分:1)

除非我误解你的要求,否则从线到p2的向量将是你想要定义的平面的法线。基本上,您构造一条与p0-p1直线成直角的直线,通过p2。