给定一个表示为2d点数组的路径:
Point[] path = new Point[4]
{
new Point(0,0),
new Point(10,0),
new Point(10,10),
new Point(0,10),
};
......这是一个盒子。
将此转换为要在3D应用程序中使用的三角形列表(填充路径)的最佳方法是什么?鉴于这只是一个简单的例子,实际上道路可能相当复杂。框架中是否有任何内容,可能是System.Drawing或WPF中有哪些可以帮助解决这个问题?
编辑:(塞缪尔评论后) 理想情况下,我希望能够处理凸多边形和凹多边形,否则图形必须手动填充许多凸多边形。
答案 0 :(得分:5)
这取决于路径的组成,以及它是如何创建的。
如果它始终是凸多边形,您可以非常轻松地创建一个三角形扇形,以填充该区域。
如果它不是凸多边形,您很可能需要使用某种形式的三角测量来填充路径。那里有很多选择。大部分示例代码都是C或C ++,而不是C#,但这可能会有所帮助:
http://local.wasp.uwa.edu.au/~pbourke/papers/triangulate/morten.html
基本思想是填充外部边界,三角测量程序将传回3D应用程序所需的正确三角形索引。
框架中没有任何内容可以帮助您。