我尝试实现我的小型CAD,并想知道如何组织Bezier立方体表面基元的数据。我的原始作品,例如一个盒子,将包含六个立方Bezie贴片,为了方便起见,它们通过自己的数据彼此分离。任何补丁都有16点。我的primitieves将针对任何迭代(选择点)缝合:例如,补丁边上的任何点将与相邻补丁的对应点共享自己的位置。我可以删除重复点,但为了渲染和更新原始数据,我需要保持数据不变,同时我需要强大的鼠标拾取算法,在边缘选取这些点并让相邻点的相应点移动一个点。 我想我有两个选择:CAD程序的数据结构。用一个数据进行鼠标拾取和渲染
- 组织数据的std :: multimap中或别的东西,其中有几点需要通过按键连接,但在这里我有搜索点的问题。
- 改进挑选算法,提供2-3点挑选作为一点,但我认为这是一个不好的解决方案。
解决此问题的常用方法是什么?感谢您的任何建议。
您可以更改数据结构,以便点不是修补程序的一部分。然后你只有一个点,并且你会有两个指向同一点的补丁。 – immibis
这个问题对Stack Overflow格式来说太宽泛了。我认为你有很多选择,那么为什么不尝试一些,看看它们是如何工作的?给出简要说明真的很难说他们会如何发挥。 – tadman
目前还没有明确的答案,您真的需要检查现有的解决方案,甚至可能混合一些以便为您的需求提供最有效的解决方案。它不在堆栈溢出的范围内。 –