坐标的变换
创始人
2024-02-05 21:08:31
0

在QPainter可以使用以下函数变换坐标:

QPainter::scale()缩放坐标系统
QPainter::rotate()顺时针旋转
QPainter::translate()平移
QPainter::shear()围绕原点来扭曲坐标系统

缩放 (QPainter::scale)

QPainter::scale(qreal sx,qreal sy)

  • sx   为   x轴的倍数
  • sy   为   y轴的倍数

放大:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.drawRect(100,100,100,100);painter.scale(2,2);//x,y翻2倍painter.drawRect(100,100,100,100);//相当于drawRect(200,200,200,200)
}

 缩小:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.drawRect(100,100,100,100);//painter.scale(2,2);//x,y放大2倍//painter.drawRect(100,100,100,100);//相当于drawRect(200,200,200,200)painter.scale(0.5,0.5);//x,y缩小2倍painter.drawRect(100,100,100,100);//相当于drawRect(50,50,50,50)
}

 注意:当使用多次scale时,它们是结合一起使用。

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.scale(2,2);//x,y放大2倍painter.scale(0.5,0.5);//x,y缩小2倍//相当于放大2倍 缩小2倍  相当于没变换painter.drawRect(100,100,100,100);//相当于drawRect(100,100,100,100)
}

 旋转(QPainter::rotate)

QPainter::rotate(qreal angle)

  • angle为角度
  • 以原点坐标

初始状态:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.drawRect(100,0,100,100);}

 旋转30°

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.rotate(30);painter.drawRect(100,0,100,100);}

 

 平移(QPainter::translate)

QPainter::translate(constQPointF&offset)

  • offset   x轴的增量和y轴的增量

初始状态: 

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.drawRect(100,0,100,100);}

 

 平移:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.translate(100,100);//x坐标加100 y坐标加100painter.drawRect(100,0,100,100);
}

 

 切变坐标系(QPainter::shear)

QPainter::shear(qrealsh,qrealsv)

  • 按 (shsv) 切变坐标系
  • sh横向扭曲
  • sv纵向扭曲

初始状态:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.drawRect(100,0,100,100);}

 扭曲坐标:

void Widget::paintEvent(QPaintEvent *event)
{QPainter painter(this);QPen pen(Qt::black);painter.setPen(pen);//设置笔painter.shear(0,1);//纵向扭曲painter.drawRect(100,0,100,100);
}

 

 

相关内容

热门资讯

珍爱生命的名人名言 珍爱生命的名人名言(精选55句)  关于生命的名人名言有哪些?生命,值得我们尊重,你知道哪些关于生命...
关于知音的名言名句  导语:关于知音或者是友谊的古诗词, 名人名言,这里全都有,关于知音的名言名句。  君子之交淡若水,...
清正廉洁格言 清正廉洁格言最短的人生格言1、执政以廉为本,为官以勤为先。2、做人一身正气,为官一尘不染。3、名位利...
罗素名言 罗素名言69句  1、伟大的事业是根源于坚韧不断的工作,以全付精神去从事,不避艰苦。——罗素  2、...
朋友的名人名言 有关朋友的名人名言汇总  在学习、工作、生活中,大家都不可避免地会接触并使用名言吧,名言可以用来鞭策...
乔布斯名言经典摘抄 乔布斯名言经典摘抄  乔布斯出生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人...
夺眶而出的名言名句 关于夺眶而出的名言名句  这里是郁郁葱葱的山神之森,一定,要有一段时间无法再盼望夏天了,心如刀绞,泪...
信仰名言 精选关于信仰名言  关于信仰名言  1、没有信仰的人如同盲人(弥顿)  2、有信仰未必能成大事,而没...
告诉自己珍惜时间的名言名句 志士惜年,贤人惜日,圣人惜时,告诉自己珍惜时间的名言名句。圣人都珍惜时间,我们凡人更要珍惜时间。下面...
工匠精神的名人名言 关于工匠精神的名人名言  1、最佳的创新定义是“不限大小,不限部门”。 最有效的创新都简单得惊人,其...
青春奋斗的名言警句 关于青春奋斗的名言警句1、青春是美妙的,挥霍青春就是犯罪,关于青春奋斗的名言警句。——萧伯纳  2、...
理想的阶梯 理想的阶梯理想的阶梯[教学目标]1.通过学习本文,使学生懂得“奋斗,是实现理想的阶梯”这一道理,并能...
激励的名言警句 激励的名言警句50句  大家都听过哪些激励的话呢?还记得吗?下面,小编为大家分享激励的名言警句,希望...
清明节家风家训的名言 清明节家风家训的名言  家风不仅是民风社风的组成要素,也是中华民族传统价值观的重要组成部分,各位,我...
英文爱情电影名言 英文爱情电影名言1) i love you not because of who you are, ...
霸气青春励志名言英语短句 霸气青春励志名言英语短句  青春是美好的时光,也是很重要的时光,下面unjs小编整理了霸气青春励志名...
文化的名言 关于文化的名言  文化是一种社会现象,是人们长期创造形成的产物,同时又是一种历史现象,是社会历史的积...
每日英语励志名言 每日一句英语励志名言  1、 No one can walk backward into the f...
感谢老师的成语和名言 感谢老师的成语和名言  春风化雨  有教无类  平易近人  古道热肠  十年树木,百年树人  作育英...
孝老敬亲的名人名言 关于孝老敬亲的名人名言  泱泱中华,礼义之邦,道德传统,源远流长。敬老孝老,是我们的传统美德,是我们...