我将三角形的三维顶点设为(x1,y1,z1); (x2,y2,z2)和(x3,y3,z3)。 我想知道dz / dx的价值。
我一直在研究各种3D几何论坛,但找不到相关的东西。我正在尝试用C ++编写算法。
如果有人可以帮助我,我会很高兴。
先谢谢。
答案 0 :(得分:0)
一般平面方程是:
a*x + b*y + c*z + d = 0
其中a
,b
,c
和d
是浮动数字。所以,首先你需要找到这些数字。但请注意,您可以设置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
表达为x
和y
的函数:
z = - (a*x + b*y) / c
然后很容易找到dz/dx
:
dz/dx = - a / c
在您的代码中,您需要关注一些特殊情况 - 例如,如果您的所有点都是共线的,或者您有c = 0
该怎么办。你需要非常小心地覆盖所有角落的情况。