我为汽车制作了一个控制器,我正在尝试为Qt中的控制器制作一个GUI。 我现在唯一缺少的是可视化汽车相对于起点的位置和角度。
我想做这样的事情:
其中圆圈代表汽车,其中的线代表其航向/角度。
额外的奖励功能是在路径移动时有一条淡化的路径,但如果我掌握了基础知识,我应该能够自己解决这个问题。
我曾尝试查看一些情节示例,但无法推断我解决问题所需的内容。
你会如何推荐这样的实现呢?
答案 0 :(得分:1)
我有所有的测量
因此,我们假设你有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();
}
}