【发布时间】:2011-01-01 10:26:52
【问题描述】:
我一直在阅读有关使用 winged-edge data structure 存储边界表示的信息。但是,链接网站说这是用于存储 b-reps 的最古老的数据结构之一,是否有更新更好的数据结构?
其次,在 C# 中是否有实现?
【问题讨论】:
标签: c# data-structures language-agnostic geometry brep
我一直在阅读有关使用 winged-edge data structure 存储边界表示的信息。但是,链接网站说这是用于存储 b-reps 的最古老的数据结构之一,是否有更新更好的数据结构?
其次,在 C# 中是否有实现?
【问题讨论】:
标签: c# data-structures language-agnostic geometry brep
用于 B-rep 的数据结构与用于多边形建模的数据结构非常相似 - 您只需将边缘替换为曲线,将面替换为曲面。
wikipedia page on polygonal meshes 列出了几种类型,包括翼缘。我个人喜欢半边网格。他们唯一做得不好的是非流形拓扑,您可能需要也可能不需要。如果有,请寻找径向边缘拓扑。
还有来自OpenNurbs 的freely available B-rep datastructure(McNeel,Rhino 的制造商)。这也可以获得文件 IO,这很好。
【讨论】:
Boundary Representation Modelling Techniques by Ian Stroud 将为您提供有关人们使用 B-reps 的方式的调查,以及包含所有欧拉运算符的大量图表,以及用于强制实施 B-reps 的具体数据结构和算法。
无论您是否想将一些字符向前移动到 F# 中,您都可以从 Wings3d(用 Erlang 编写)的源代码中收集到相当多的信息。只是不要迷失了制作宇宙飞船而忘记了你应该在编码!
另外,the GML 将允许您以交互方式调查您可以使用 B-reps 做什么,而数据结构是代码。
【讨论】:
不确定这是否会有所帮助,但 XNA 库中有用于处理 3D 结构的 Geometry 对象等等。里面可能有东西。但是我的猜测是,它要么是基于点的,要么是基于三角形的与基于边缘的。
但它可能是一个值得一看的地方。
【讨论】: