首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QPainterPath QTransform::map

QPainterPath QTransform::map
EN

Stack Overflow用户
提问于 2013-12-23 08:58:48
回答 1查看 3.5K关注 0票数 2

我想画一个有角的长方形。它可以工作,但当我改变角度时,矩形的位置在其他地方发生变化。我听不懂。有人帮我吗?

这是我的代码:

代码语言:javascript
复制
QPoint point = QPoint(100,100); // has to be shown at this point
QSize  size  = QSize(30,30);
QRect rect = QRect(point,size);


QPainterPath Path ;
Path.addRect(rect);

QTransform t; 
t.rotate(myAngle);

QPainterPath newPath= t.map(Path);

QwtPlotShapeItem *Item = new QwtPlotShapeItem( "Shape Name" );
Item->setItemAttribute( QwtPlotItem::Legend, true );
Item->setRenderHint( QwtPlotItem::RenderAntialiased, true );
Item->setShape(newPath );
Item->setPen( Qt::black );
Item->setBrush( QColor("Grey") );
Item->attach(this);

我认为map()函数导致了这个问题。但我不知道为什么。谢谢你的建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-23 09:53:40

QTransform::rotate使用(0,0)中心点旋转坐标系。你的长方形不在中间,所以旋转时它会被显著移动。您应该将矩形放置在坐标系的中心(point=(-15,-15)),并在t.rotate之后使用t.translate将旋转的矩形移动到适当的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20740086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档