QT坐标系转换(将QPainter左上角为原点的坐标系转换为正常坐标系)

本文介绍了如何在Qt中使用Painter类时,从标准的左上角原点坐标系转换为我们熟悉的坐标系,通过设置窗口坐标并提供示例代码,帮助开发者理解和实现坐标系调整以正确绘制图形。

没有复杂的变换,简单转化窗口坐标系,即可按我们正常熟知的坐标系进行绘图

QPainter坐标系以左上角为原点,如下图

在这样的坐标系下绘图,位置这是倒过来的

QPainter m_pPainter(this);

    m_pPainter.setBrush(Qt::yellow);
    m_pPainter.drawRect(0, 0, 50, 50);
    m_pPainter.translate(100, 100); //将点(100,100)设为原点
    m_pPainter.setBrush(Qt::red);
    m_pPainter.drawRect(0, 0, 50, 50);

要将QT坐标系转换为我们正常认知的坐标系,如下图

只需要一行代码m_pPainter.setWindow(0, this->height(), this->width(), -(this->height()));

增加窗口坐标系转换后,则按照我们正常认知的坐标系进行绘制,绘图效果如下图

QPainter m_pPainter(t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值