确定三角形3D顶点的dz / dx值

时间:2017-12-17 21:52:20

标签: c++ geometry computational-geometry

我将三角形的三维顶点设为(x1,y1,z1); (x2,y2,z2)和(x3,y3,z3)。 我想知道dz / dx的价值。

我一直在研究各种3D几何论坛,但找不到相关的东西。我正在尝试用C ++编写算法。

如果有人可以帮助我,我会很高兴。

先谢谢。

1 个答案:

答案 0 :(得分:0)

一般平面方程是:

a*x + b*y + c*z + d = 0

其中abcd是浮动数字。所以,首先你需要找到这些数字。但请注意,您可以设置d = 0,因为具有相同a, b, c系数和不同d的所有平面彼此平行。所以,你得到一个线性方程组:

a*x1 + b*y1 + c*z1 = 0
a*x2 + b*y2 + c*z2 = 0
a*x3 + b*y3 + c*z3 = 0

解决系统后,您将拥有这三个系数 - 然后您可以将z表达为xy的函数:

z = - (a*x + b*y) / c

然后很容易找到dz/dx

dz/dx = - a / c

在您的代码中,您需要关注一些特殊情况 - 例如,如果您的所有点都是共线的,或者您有c = 0该怎么办。你需要非常小心地覆盖所有角落的情况。