我想创建一个类似于一个简单的CAD程序,在其中我可以画圆,线,正方形等。没有太花哨,只是基本的绘图东西。
我对如何制作这个程序有一些想法,但我需要一些建议。在CAD程序中,你可以画出任意多的矩形和形状,也可以删除任何他们想要的东西。
我认为对于每个绘制的图形(线,矩形,多边形)应该是一个类的实例,并且实例应该存储在列表中,因为我希望每个绘制的形状都有自己的属性,如颜色,(x,y)坐标,线型等。例如,'rect_list‘是一个容器,存储来自类'Rectangle’的实例。
对于这种编写程序的方法,哪种容器更好?vector、list还是deque
发布于 2012-06-28 21:25:35
我会考虑使用链表来快速添加和删除实体。对于巨大的列表,当你到处删除实体时,会发生繁重的内存操作,并减慢整个过程……
对于选择,在链表的情况下,需要在实体级别保留一个自动递增的整数值。
发布于 2012-06-28 06:16:27
你的顶点列表应该在一个向量中(一旦你知道了点的数量,调整向量的大小以容纳这么多的点并填充它),然后你需要一个所有这些向量的列表,这样你就可以插入到中间,否则就可以有效地操作该列表。
然而..。你真正想要的是一个场景图。这是一个“树视图”模型,它存储了对象的3d视图,因此您可以很容易地看到哪些对象与其他对象相关。它们还可以显示哪些对象在显示时隐藏了其他对象(因此您不需要同时绘制它们),或者哪些对象不在屏幕上(同上)。
其中最好的是OpenSceneGraph,它非常像STL。
https://stackoverflow.com/questions/11235525
复制相似问题