c++ - 使用 GDI 或 GDI+ 的高级图形

标签 c++ .net gdi+ gdi

我正在寻找一些高级教程,或者可能是用 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/

相关文章:

c# - ExternalException (0x80004005) GDI+ 中发生一般性错误

c++ - 如何逐行读取文本文件然后解析一行中的字符?

c++ - 为什么 C++ 禁止声明无类型的参数?

.net - 如何为 Visual Studio 构建/扩展设计器

c# - 如何指定 HTTP 状态代码 304 (NotModified) 不是 Amazon S3 GetObject API 中的错误条件?

winapi - 是否可以直接从 GDI+ 位图进行 BitBlt?

c++ - 使用 GDI+ 注入(inject) DLL 导致记事本崩溃

c++ - QPropertyEditor 中的运行时动态属性

c++ - 解析位置参数

c# - 重启后 Windows 服务不会自动启动