我一直在阅读有关使用翼边数据结构存储边界表示的信息。但是,链接的站点说这是用于存储 b-reps 的最古老的数据结构之一,是否有更新更好的数据结构?
其次,在 C# 中是否有实现?
我一直在阅读有关使用翼边数据结构存储边界表示的信息。但是,链接的站点说这是用于存储 b-reps 的最古老的数据结构之一,是否有更新更好的数据结构?
其次,在 C# 中是否有实现?
用于 B-rep 的数据结构与用于多边形建模的数据结构非常相似——您只需将边缘替换为曲线,将面替换为曲面。
多边形网格的维基百科页面列出了几种类型,包括翼边。我个人喜欢半边网格。他们唯一做得不好的是非流形拓扑,您可能需要也可能不需要。如果这样做,请寻找径向边缘拓扑。
还有一个来自OpenNurbs(McNeel,Rhino 的制造商)的免费可用的 B-rep 数据结构。这也可以获得文件 IO,这很好。
Ian Stroud 的边界表示建模技术将为您提供有关人们使用 B-reps 的方式的调查,以及带有所有欧拉运算符的大量图表,以及用于强制实现 B-reps 的具体数据结构和算法。
无论您是否想将一些字符向前移动到 F# 中,您都可以从Wings3d的源代码(用 Erlang 编写)中收集到相当多的信息。只是不要迷路制作宇宙飞船而忘记你应该编码!
此外,GML将允许您以交互方式调查您可以使用 B-reps 做什么,并且数据结构就是代码。
不确定这是否有帮助,但 XNA 库中有 Geometry 对象用于处理 3D 结构,什么没有。里面可能有东西。但是我的猜测是它要么是基于点的,要么是基于三角形的与基于边缘的。
但它可能是一个值得一看的地方。