1 回答

TA贡献1875条经验 获得超3个赞
快速简便地正确排序(半透明)三角形的解决方案
我称之为“假投影排序”。如果可以假设三角形不相交,则只需检查三角形(黑色或绿色)是否与四面体相交即可(绿色三角形的黑色坐标与相机位置的坐标)。
一个例子
第一个三角形坐标:
0.0, 0.0, 5.0
0.0, 5.0, 5.0
5.0, 5.0, 5.0
第二个三角形坐标:
0.0, 0.0, 5.0
5.0, 0.0, 5.0
5.0, 0.0, 5.0
相机位置
1.15, 5.8, 5.5
然后,四面体坐标将是来自三角形(例如,第一个)和相机位置的坐标。
0.0, 0.0, 5.0 // First coordinate from the first triangle
0.0, 5.0, 5.0 // Second coordinate from the first triangle
5.0, 5.0, 5.0 // Third coordinate from the first triangle
1.15, 5.8, 5.5 // Camera position
您需要做的最后一件事是检查第二个三角形是否与四面体相交。如果第二个三角形相交,则它覆盖第一个三角形。如果使用第二个三角形的坐标来创建四面体,则需要检查第一个三角形的交点,而不是第二个。
笔记
不要使用Java的TreeSet或TreeMap使用“假投影排序”来比较三角形,否则会产生不正确的排序。
添加回答
举报