确定三角形 3D 顶点的 dz/dx 值
Determining dz/dx value from Triangle 3D Vertices
我有一个三角形的 3D 顶点作为 (x1,y1,z1) ; (x2,y2,z2) 和 (x3,y3,z3)。
我想知道 dz/dx.
的值
我一直在寻找各种 3D 几何论坛,但找不到相关的 things.I 我正在尝试用 C++ 编写算法。
如果有人能帮助我,我会很高兴。
提前致谢。
一般平面方程为:
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
怎么办?您需要非常小心地涵盖所有极端情况。
我有一个三角形的 3D 顶点作为 (x1,y1,z1) ; (x2,y2,z2) 和 (x3,y3,z3)。 我想知道 dz/dx.
的值我一直在寻找各种 3D 几何论坛,但找不到相关的 things.I 我正在尝试用 C++ 编写算法。
如果有人能帮助我,我会很高兴。
提前致谢。
一般平面方程为:
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
怎么办?您需要非常小心地涵盖所有极端情况。