math - 检查平面上的点在哪一侧

标签 math 3d pseudocode

我正在尝试获取3D点数组和一个平面,然后根据它们所在的平面将点分成2个数组。在进行大量调试之前,我想发布一下我打算做的事情,以确保我对如何做的理解能够奏效。

基本上我有3点的飞机,我使用(伪代码):

var v1 = new vector(plane.b.x-plane.a.x, plane.b.y-plane.a.y, plane.b.z-plane.a.z);
var v2 = new vector(plane.c.x-plane.a.x, plane.c.y-plane.a.y, plane.c.z-plane.a.z);

我将这两个 vector 的叉积作为法线 vector 。

然后,我遍历点数组并将其转换为 vector ,并针对法线计算点积。

然后,我使用点积来确定该点在哪一侧。

这听起来可行吗?

最佳答案

a*x+b*y+c*z+d=0为确定您的飞机的方程式。

将点的[x,y,z]坐标代入方程式的左侧(我的意思是a*x+b*y+c*z+d),然后看一下结果的符号。

具有相同符号的点在平面的同一侧。

老实说,我没有检查您所写内容的细节。我想你同意我的建议比较简单。

关于math - 检查平面上的点在哪一侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688232/

相关文章:

python - 计算素数对数的程序

html - 如何将公式转换为 MathML 以便在网页中使用

3d - 如何在 JavaFX 中相同地渲染三角形的正面和背面

javascript - 如何在 Three.js 中检查两个凸多面体是否相交?

c++ - 如何在QCustom3DLabel上重置文本?

algorithm - 计算大 O 符号

jquery - mouseMove 上的水平滚动 - 较小 div 中的宽 div 并溢出 :hidden (Can't get the math to work)

c++ - C++ 中求和程序的问题

javascript - 获取两个 XML 树之间差异的算法(JS 或伪代码)

C# - 计算作为对象 - 具有许多依赖关系的许多计算