最接近给定重心交点参数的点的 3D 三角形的顶点
Vertex of a 3D triangle that is closest to a point given barycentric parameter of intersection
所以我遇到了这个问题:我正在编写一个程序,您可以在其中单击屏幕上投影了 3D 对象的点,并且视觉上(在 2D 中)最接近该点的三角形网格的顶点将被选中。我已经计算了与三角形相交的重心坐标。如何使用这些重心坐标来计算最近的顶点?
感谢帮助
对于重心坐标 (u,v,w)
和三角形边长 a,b,c
到 A、B、C 顶点的平方距离是
dA^2 = -(a^2*v*w + b^2*w*(u-1) + c^2*v*(u-1)) =
-(a^2*v*w+b^2*w*u+c^2*v*u - b^2*w - c^2*v) =
b^2*w + c^2*v - Const (TheSameConstantForAllVertices)
dB^2 = -(a^2*(v-1)*w + b^2*w*u + c^2*(v-1)*u) =
a^2*w + c^2*u - Const
dC^2 = -(a^2*v*(w-1) + b^2*(w-1)*u + c^2*v*u)
a^2*v + b^2*u - Const
(more formulas here),因此您可以比较平方距离并选择最小的一个。我已经分离了更简单的表达式进行比较。
也许您需要一些近似值以获得相当好的(接近等边)三角形。在这种情况下,从重心三重态中选择最大值。它大致对应于最近的顶点。
所以我遇到了这个问题:我正在编写一个程序,您可以在其中单击屏幕上投影了 3D 对象的点,并且视觉上(在 2D 中)最接近该点的三角形网格的顶点将被选中。我已经计算了与三角形相交的重心坐标。如何使用这些重心坐标来计算最近的顶点? 感谢帮助
对于重心坐标 (u,v,w)
和三角形边长 a,b,c
到 A、B、C 顶点的平方距离是
dA^2 = -(a^2*v*w + b^2*w*(u-1) + c^2*v*(u-1)) =
-(a^2*v*w+b^2*w*u+c^2*v*u - b^2*w - c^2*v) =
b^2*w + c^2*v - Const (TheSameConstantForAllVertices)
dB^2 = -(a^2*(v-1)*w + b^2*w*u + c^2*(v-1)*u) =
a^2*w + c^2*u - Const
dC^2 = -(a^2*v*(w-1) + b^2*(w-1)*u + c^2*v*u)
a^2*v + b^2*u - Const
(more formulas here),因此您可以比较平方距离并选择最小的一个。我已经分离了更简单的表达式进行比较。
也许您需要一些近似值以获得相当好的(接近等边)三角形。在这种情况下,从重心三重态中选择最大值。它大致对应于最近的顶点。