车辆方向OpenGL

Vehicle direction OpenGL

本文关键字:OpenGL 方向      更新时间:2023-10-16

这是一个单一的任务,所以我无法向你展示大块的代码,但是我遇到的主要问题是,我试图跟踪汽车行驶的方向(要么朝着正x或负x)。我在c++工作。在每一帧运行并更新的draw函数中我有这样的内容

static double dx;
dx = vehicle->getX()-dx;

getX()工作正常,并获得车辆的当前位置。有人知道为什么我在前进的过程中总是得到正的答案,而当我反向时,dx只是下降而不是变成负的,这是我想要的吗?

你没有正确应用力学的基本定律。从描述中,您想要将dx计算为速度,这是位置的变化。但是在你的计算中:

dx = vehicle->getX()-dx;

getX()(位置)的结果中减去dx(速度)。所以你是在计算两个完全不同的量的差。

你需要做的是跟踪前一个位置,然后计算当前的速度作为当前位置和前一个位置的差:

static double oldX;
double newX = vehicle->getX();
double dx = newX - oldX;
oldX = newX;