Qt中QPainter的三角形平移问题

介绍一下背景哈哈哈:在Qt中使用QPainter进行画图的时候,即用对地图的使用的时候,我发现了一个让我十分惊讶的地方!!!我在声明QRectF RR;//正方形的时候,在QRectF这个类中有moveTo这个算法,然而当我QPolygon triangle;//三角形的时候,却发现没有moveTo这个内置函数,了解过这些方面的朋友们都知道moveTo(qreal x,qreal y)和另一个内置函数translate的区别,moveTo在移动的时候并不会改变原来的坐标系,即保持在同一个坐标系中移动,但是translate却不一样,它在执行的时候每执行一次,地图上都会出现新的原点,例如translate(50,50)之后地图上的原点将由(0,0)变到(50,50)这样的话对某些应用层面来说带来了很多不便。

问题:三角形的移动如何才能做到即能平移,又能不改变地图远点的坐标呢(该方法仅供参考)?

解决方法:有一种方法就是使用setPoints这个内置函数,学过这方面知识的都知道这个函数一般来说是用来构建一个图形的,当今天我发现他的一个新用法,就是当我们想平移而不改变原点坐标的时候,我们可以在构建图形的原来的基础上加上要平移的量值,比如:最初的时候我是这样来构建三角形的:

triangle.setPoints(3,25,0,-10,-25,-10,25);

但我想移动到(100,100)的时候我们就可以:

triangle.setPoints(3,25+100,0+100,-10+100,-25+100,-10+100,25+100);

相比起translate,用这种方法当你在想相对于初始原点移动的时候就不会十分的麻烦,且地图的原点可以保持不变。

希望我的这个办法能够帮助到更多的朋友们!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值