父子QGraphicsItem绘图示例,及与ros中rviz的不同
Posted 可峰科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父子QGraphicsItem绘图示例,及与ros中rviz的不同相关的知识,希望对你有一定的参考价值。
Graphices View中的单位都是像素,米制需要换算成像素。
QGraphicsItem内部绘图的中心是(0,0).可以按照自己的方式绘制。
Graphices View 内部x轴和y轴及原点不清晰的可以先画出来,再调试。x轴正方向向下,y轴正方向向右。
QGraphicsItem父子构成关系,需要子QGraphicsItem调用函数setParentItem来把父QGraphicsItem添加进来。
ros中rviz的坐标系中的x轴是Graphices坐标系中的y轴,
ros中rviz的坐标系中的y轴是Graphices坐标系中的x轴。
所以ros中rviz的坐标系中的绕z轴旋转90度,在Graphices坐标系中应为旋转-90度。
示例代码如下:
QGraphicsItem *submap_0 = new Submap();
int row_0 = -10.05/0.05;
int col_0 = 6.109/0.05;
submap_0->setPos(col_0,row_0);
//-36.3315
submap_0->setRotation(-36.3315);
QImage image_0 = rpc_handler.GetSubmap(0,0);
QGraphicsItem *slice_0 = new Slice(image_0);
slice_0->setPos(-1*31.35/0.05,-1*25.2/0.05);
slice_0->setParentItem(submap_0);
scene->addItem(submap_0); //组合添加到场景中
QGraphicsItem的serPos()函数设置图形项在父项中的坐标,如果没有父项,就是在场景(上面代码中scene)中的坐标。
以上是关于父子QGraphicsItem绘图示例,及与ros中rviz的不同的主要内容,如果未能解决你的问题,请参考以下文章