我正在开发一个图像查看器,其中图形以抗锯齿模式呈现。可以先使用生成 DXF 文件的 Autocad 编辑图像。
应用程序是使用 Visual C++ 和 Direct2D 编写的。
虽然我能够非常快速地加载图像,但与 Autocad 对同一图像(相同数量的形状)的性能相比,缩放尤其是平移对我来说仍然是个问题。
下面是一段渲染图形的代码:
auto shapes = quadTree.get_visible_shapes();
shapes.sort_by_Zorder();
for each shape in shapes:
shape.draw();
分析后我可以说超过 90% 的计算时间都花在了旨在绘制形状的循环中。
由于四叉树的实现,只绘制可见的形状已经有了巨大的性能改进;我还在平移时以别名模式渲染图形,但与 Autocad 仍然存在很大差异。
我想知道 Autocad 是否绘制了图像的位图表示,即使我还没有尝试过这种方法,所以我无法判断是否可以有效提高速度。
考虑到这些假设,是否有任何方法可以改善平移和缩放的 Action ?
最佳答案
关于c++ - Autocad 怎么能这么快的平移和缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804451/