我正在寻找一些高级教程,或者可能是用 C++ 或 .NET 编写的开源应用程序,它们可以实现复杂的基于 vector 的应用程序,例如 MS Visio 或 Autocad。我需要知道的是,当用户可以将一个复杂对象移动到其他复杂对象上时,此类应用程序的大师如何管理鼠标移动时复杂对象(> 1000 个矩形)的渲染。我知道异或绘画之类的东西,但如果你检查上面的应用程序,很明显他们没有使用这种技术。整个对象在另一个对象之上平滑移动,而不仅仅是它的 XOR 反射。此外,移动对象在移动时会显示一些附加信息,例如当前坐标或其他信息,所以它不是保存在位图中的静态表示。
欢迎任何建议。
谢谢
最佳答案
很 multimap 形应用程序使用某种 spatial partitioning减少他们需要查看的对象数量。例如,如果您移动一个矩形,应用程序会在 quadtree 中查找。并找到边界框与移动矩形重叠的 2 或 3 个其他对象。然后它只需要对 2 或 3 个对象而不是 1000 个进行完整的碰撞检测和图形处理。
关于c++ - 使用 GDI 或 GDI+ 的高级图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976695/