我一直在阅读使用winged-edge data structure来存储边界表示。但是,链接网站说这是用于存储b-reps的最古老的数据结构之一,是否有更新的更好的?
其次,在C#中是否有这样的实现?
答案 0 :(得分:3)
用于B-rep的数据结构与用于多边形建模的数据结构非常相似 - 您只需用曲线替换边缘,用曲面替换面。
wikipedia page on polygonal meshes列出了几种类型,包括翼边。我个人喜欢半边网格。他们唯一不能做得好的是非流形拓扑,您可能需要也可能不需要。如果这样做,请查找径向边缘拓扑。
还有来自freely available B-rep datastructure的OpenNurbs(McNeel,Rhino的制造商)。这也让你获得文件IO,这很不错。
答案 1 :(得分:1)
Boundary Representation Modelling Techniques by Ian Stroud将为您提供人们接触B-reps方式的调查,以及所有Euler算子的大量图表,以及强制执行B-reps的具体数据结构和算法。
无论你是想将几个字符向前移动到F#中,你都可以从Wings3d的源代码中收集相当多的信息(用Erlang编写)。只是不要迷失太空船而忘记你应该编码!
同样the GML将允许您以交互方式调查您可以对B-reps执行的操作,以及数据结构 代码。
答案 2 :(得分:0)
不确定这是否有帮助,但XNA库中有几何对象用于处理3D结构,而不是。那里可能有些东西。不过我的猜测是,它将基于点或基于三角形而不是基于边缘。
但它可能是一个值得关注的地方。