Qt

时间:2016-04-18 10:15:45

标签: c++ qt plot 2d draw

我为汽车制作了一个控制器,我正在尝试为Qt中的控制器制作一个GUI。 我现在唯一缺少的是可视化汽车相对于起点的位置和角度。

我想做这样的事情:

enter image description here

其中圆圈代表汽车,其中的线代表其航向/角度。

额外的奖励功能是在路径移动时有一条淡化的路径,但如果我掌握了基础知识,我应该能够自己解决这个问题。

我曾尝试查看一些情节示例,但无法推断我解决问题所需的内容。

你会如何推荐这样的实现呢?

1 个答案:

答案 0 :(得分:1)

You say

  

我有所有的测量

因此,我们假设你有Euler angles这样你就可以过滤滚动的变化,只考虑φ的变化。

为此,您需要扩展QWidget添加成员φ,我们将其命名为:m_phi。我们还需要将您的QPixMap添加为会员,我们将其称为m_px。你将覆盖QWidget::paintEvent

paintEvent(qPaintEvent* /*event*/) {        
    if(!m_px.isNull()) {
        QPainter* p;

        p.setRenderHint(QPainter::Antialiasing);
        p.translate(width() / 2.0, height() / 2.0);
        p.save();
        p.rotate(m_phi);

        QRect r = m_px.rect();

        r.moveCenter(QPoint());
        p.drawPixmap(r, m_px);
        p.restore();
    }        
}