首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qpainter.rotate()问题- qgis

Qpainter.rotate()问题- qgis
EN

Stack Overflow用户
提问于 2009-05-09 05:43:31
回答 2查看 2.2K关注 0票数 1

我正在定制QuantumGIS,它使用Qt的Qpainter来绘制和绘制...

我正在尝试在画布上绘制一条折线,该画布作为更新通过消息queues..the draw is very fine...but in the polyline or polygon objects还包括一个用于旋转对象的角度字段。问题是,当我试图在qpainter使用painter.rotate()方法绘制折线之前旋转直线时,直线旋转得很好,但是changes..and绘制的直线的位置在每次缩放和平移Qgis画布时都会改变。在设置painter.rotate()之前,我保存了painter的状态,在绘制之后-再次恢复它的状态,我相信这类似于OpenGL的push/popMatrix函数。Qpainter的保存恢复功能是否类似于opengl的push/popMatrix功能??

下面是一个代码片段:

代码语言:javascript
复制
p->save();
  //p->rotate(45);
  p->scale( 1.0 / rasterScaleFactor, 1.0 / rasterScaleFactor );
  p->drawPolyline( pa );
  p->restore();

感谢您的帮助。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2009-05-28 08:49:31

阅读documentation,你会发现QPainter::save()只“保存当前的画图状态”。它不会重置变换。你的问题是因为原始的变换矩阵与你自己的缩放或旋转混合在一起。您的代码片段太小,无法理解绘画的上下文,但我认为您需要在绘制polyline之前适当地重置或修改转换,也许可以使用QPainter::setTransform()

我还推荐阅读QPainter documentation中的坐标转换部分,以及尝试使用related example

票数 1
EN

Stack Overflow用户

发布于 2009-05-09 14:28:54

最好的办法是在QGIS Mailing List中提出这个问题

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

https://stackoverflow.com/questions/842782

复制
相关文章

相似问题

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