给定:3D空间中的3个三角形顶点,该三角形上的点的x,y坐标(包括三角形区域)。
通缉:给定点的z坐标。
所有3个三角形顶点都有不同的(x,y)坐标(它们是高度图坐标),因此不需要处理多个(无限)匹配的情况。
我正在尝试在C中执行此操作,这意味着在简单数字类型上运行的算法,例如浮点数最好(没有矩阵或向量运算)。
答案 0 :(得分:3)
这通常使用矢量/矩阵来完成,它们只是底层操作的较短符号。
制作两个向量U =(ux,uy)= point2-O; V =(vx,vy)= point3 - O
解决线性系统问题 x,y = u * U + v * V代表u和v
x = u *(p2x-ox)+ v *(p3x-ox)
y = u *(p2y-oy)+ v *(p3y-oy)
检查0 <= u,v <= 1且0 <= u + v <= 1 如果是,则点x,y在三角形内并且为 z = u *(p2z-oz)+ v *(p3z-oz)