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

发布于 2022-09-07 23:56:26 字数 932 浏览 16 评论 0

我现在有一些折线的坐标对数据,需要在用 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 里该怎么合理解决这个问题呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文