将任意 2D 多边形投影到 3D 三角形网格上的最佳方法是什么?
为了让事情更清楚,这是问题的可视化:
三角形网格代表地形,因此可以认为是 2.5D。我希望能够将投影多边形视为一个单独的对象。
这个特定的实现是在 WebGL 和three.js 中完成的,但任何适合交互式 3D 应用程序的解决方案都值得关注。
最佳答案
如果您的问题不是如何对表面进行纹理贴图,那么您真的必须生成新的 3D 多边形。
您将使用某种投影机制(例如并行机制)将 3D 问题转换为 2D。
首先将表面反投影到多边形平面上。多边形将覆盖在相应的 2D 网格上。现在对于每个面,找到面和多边形的交集(在 bool 意义上)。
为此,您将需要一个多边形相交机制,例如 Weiler-Atherton 或 Sutherland-Hodgman 裁剪算法(后者更简单,但仅适用于凸窗)。 (另请查看 http://www.angusj.com/delphi/clipper.php )
裁剪后,您将投影到原始小平面。
关于graphics - 将任意 2D 多边形投影到 3D 三角形网格上的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48764965/