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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了确定三角形3D顶点的dz / dx值相关的知识,希望对你有一定的参考价值。

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

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

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

提前致谢。

答案

一般平面方程是:

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。你需要非常小心地覆盖所有角落的情况。

以上是关于确定三角形3D顶点的dz / dx值的主要内容,如果未能解决你的问题,请参考以下文章

DX11 中的顶点缠绕顺序

检查框内是不是有 3D 点

unity3d游戏开发学习分享之表面着色器讲解

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

确定一个点是不是在 3D 空间中的三角形内

WPF 3D开发教程