Math 使用点积确定点是否位于平面上

Math 使用点积确定点是否位于平面上,math,3d,geometry,vector-graphics,Math,3d,Geometry,Vector Graphics,给定A:A点,B:p平面上已知存在的点,C:p平面的法线。我能通过(A-B)和C之间的点积为零的结果来确定A是否位于p上吗?(或者在一定精度范围内,我可能会使用0.0001f) 我可能只是遗漏了一些明显的数学缺陷,但这似乎比将点转换为三角形的坐标空间a简单得多,速度也快得多 第二,我猜;如果这是一个有效的检查,如果我只想知道点是否在平面上,它的计算速度会比使用矩阵变换快吗?(而不是它是否位于所述平面上的多边形内,我可能会继续使用矩阵变换)你是正确的,B位于通过a的平面上,且具有法线p,当且仅当点

给定A:A点,B:p平面上已知存在的点,C:p平面的法线。我能通过(A-B)和C之间的点积为零的结果来确定A是否位于p上吗?(或者在一定精度范围内,我可能会使用0.0001f)

我可能只是遗漏了一些明显的数学缺陷,但这似乎比将点转换为三角形的坐标空间a简单得多,速度也快得多


第二,我猜;如果这是一个有效的检查,如果我只想知道点是否在平面上,它的计算速度会比使用矩阵变换快吗?(而不是它是否位于所述平面上的多边形内,我可能会继续使用矩阵变换)

你是正确的,B位于通过a的平面上,且具有法线p,当且仅当点积(a-B,p)=0


要估计这类事情的速度,几乎可以只计算乘法。这个公式只有三次乘法,因此它的运算速度将比任何与矩阵有关的运算都快。

以上的答案更接近于证明,但还不够。直观地说,仅使用两个向量是不够的,因为对于一个向量,点P可以位于平面上方,并且从点P到平面的垂直线仍然会与平面上的任何单个向量生成零点积,就像平面上的点P一样。必要和充分条件是,如果在平面上可以找到两个向量,那么实际平面可以用两个向量的叉积明确表示,即。 w=uxv。根据定义,w是面积向量,它始终与平面垂直

然后,对于所讨论的点p,从uv构建第三个向量s应通过点积s.t与w进行测试


wswscos(90)=0表示点p位于w描述的平面上,该平面又由向量uv描述

你能发布一个数据/数学的例子吗?特别是要回答这个问题的标题,这对于像我这样一个试图学习如何进行这种比较的noob来说是一个最好的结果;“更不用说它是否经过优化以及它有多贵了。”索罗卡:数学算起来还不错。请注意,在此上下文中,“法线”仅表示垂直。根据定义,平面的法线是垂直于平面中所有向量的向量。因为A在平面中,所以A-B(或B-A)是平面中的向量。当且仅当点积(A-B,P)=0时,该向量垂直于P。这有用吗?飞机与原点的距离如何?要想得到准确的结果,就必须考虑到这一点。到原点的距离是abs(点积(A,P))/length(P)。这是A在P方向上的分量的长度。您是否希望得到更明确的结果?