【发布时间】:2018-04-08 23:40:44
【问题描述】:
我需要找到构成我的曲面的所有顶点,但我只知道顶点(将它们保留为数组)和边。我在XY坐标系中做。我在 Unity3D 项目中需要它(所以伪代码或 C# 代码会很有帮助),但任何数学想法都值得赞赏。
例如,我制作了一些图片。 如果在我的示例中没有凸角,那真的很容易 - 我选择任何顶点(例如 0)并在循环中取两个下一个顶点。它给了我三角形 0-1-2、0-2-3 和 0-3-4。
如果我有一个凸角,这也很容易。我不知道如何找到哪个顶点是凸的(有什么想法吗?),但它似乎并不复杂。然后我带他做和上面一样的算法。
不幸的是,我的想法不再适用于更复杂的形状,例如(我的项目中总是有一个形状,我只是画更多的形状来展示更复杂的示例):
如果我有这样的形状并尝试使用上述方法,任何三角形总是不符合我的形状。
我认为我可以使用任何数学。我的顶点在 XY 坐标上,所以我可以计算一些东西。如果需要,我也可以制作更多顶点,因此我可以:
我试图准确地描述我的问题。我希望我的英语不太稳定。
如果您有任何想法 - 数学想法或伪代码想法如何为我的顶点制作表面,请写出来。如果您有任何单一的建议,而不是具体的想法 - 也写。我正在寻找灵感、想法或任何东西。
【问题讨论】:
-
我认为混合凸凹?
-
我的意思是我认为你在解释中混淆了这些术语。正如您在上面描述的那样,凸的不应该是真正的问题,而是将它们称为凹的。
-
google 三角测量 ...就像剪耳 ...
-
这是 80 年代和 90 年代有限元自动网格划分的一个活跃研究领域。搜索四叉树、自动网格划分等,找到最新的。
标签: algorithm math unity3d mesh surface