Qt5如何将图形绘制在窗口中央并合理缩放

新手上路,请多包涵

我现在有一些折线的坐标对数据,需要在用 Qt 绘制出来,也就是用线段连接这些坐标点。现在我已经能够正确地画出折线,然后我尝试用下面地代码将图形移动到窗口中央:

QPointF offset = rect().center() - path.boundingRect().center();
painter.translate(offset);

简单地说我的思路就是计算图形的中心点和窗口中心点之间的偏移量,然后进行平移。画出来之后效果是这样的:
图片描述
只有那一团东西。我分析了下原因,这个应该是因为这些坐标都太靠近了,下面是其中一条折线的坐标:

 1.15109497070313E+02 2.73440704345703E+01
 1.15115196228027E+02 2.73563938140869E+01
 1.15112876892090E+02 2.73697128295898E+01
 1.15108222961426E+02 2.73687496185303E+01
 1.15081001281738E+02 2.73908023834229E+01
 1.15078292846680E+02 2.73949108123779E+01
 1.15073806762695E+02 2.74090080261230E+01
 1.15063293457031E+02 2.74221019744873E+01
 1.15059646606445E+02 2.74324569702148E+01

所以我觉得目前我的问题就是怎样把图形移动移动到窗口中央而且经过合理缩放使图形展现得清楚些?以前我用过 MFC,在 MFC 里是通过窗口和视口的坐标变换实现的,但是我一直不太了解原理,对我来说坐标变换实在。在 Qt 里该怎么合理解决这个问题呢?

阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题