graphics - 将任意 2D 多边形投影到 3D 三角形网格上的最佳方法?

标签 graphics 3d three.js webgl computational-geometry

将任意 2D 多边形投影到 3D 三角形网格上的最佳方法是什么?

为了让事情更清楚,这是问题的可视化:

img

三角形网格代表地形,因此可以认为是 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/

相关文章:

javascript - 使用 three.js 和 <canvas> 的纹理 3D 模型(不是 WebGL)

javascript - 在 ThreeJs 中围绕中心点上下移动 3D 相机

java - Java中的简单动画

.net - GDI+ 如何更改线条平滑模式?

graphics - BlackBerry - 图像 3D 变换

java - OpenCV鸟瞰 View 而不会丢失数据

r - 在 R 中直接绘制数学函数

ios - iOS 设备中的 3D 广告

javascript - THREE.js 正交相机缩放到鼠标点

r - 使用 ggplot2 和 drc 绘制剂量 react 曲线