首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >opengl中的车辆控制?

opengl中的车辆控制?
EN

Stack Overflow用户
提问于 2013-06-18 12:27:54
回答 3查看 502关注 0票数 0

我在opengl遇到麻烦了。我想在向前/向后移动的同时旋转我的车辆。Here's a picture,它正好显示了我的问题。当前代码的效果是蓝色的-在移动后,汽车会在起始位置而不是当前位置上旋转。我希望有红色的情况-在这种情况下,我的车辆将在当前位置旋转,然后正确地向前/向后移动。

我当前的代码:

代码语言:javascript
复制
lxr=sin(angle);
lzr=cos(angle);

xr+=speed*lxr;
zr+=speed*lzr;

totalangle+=angle

glRotatef(totalangle,0.0,1.0,0.0);
glTranslatef(0.0,0.0,xr);
drawVehicle();
EN

回答 3

Stack Overflow用户

发布于 2013-06-18 12:32:03

您可以尝试在旋转之前调用translate。glRotatef旋转视图矩阵,它影响当前视图和矩阵glTranslatef。

票数 2
EN

Stack Overflow用户

发布于 2013-06-18 14:32:54

从图像中,我以为你是在平移然后旋转,但是看着代码,我发现这不是真的。

因此,很明显,您是在drawVehicle();函数中,而不是在中心(0,0)呈现您的对象。你需要在中间渲染它,旋转然后平移。

另外,你的翻译也是假的。您只是在z方向上平移,而不是在y方向上平移:

代码语言:javascript
复制
glTranslatef(0.0,0.0,xr);

你需要这样做:

代码语言:javascript
复制
glRotatef(totalangle,0.0,1.0,0.0);
glTranslatef(0.0,yOffset,0.0);
drawVehicle(); // render around [0,0]
票数 1
EN

Stack Overflow用户

发布于 2013-06-18 12:39:20

您还必须移动坐标系的原点,以便随心所欲地旋转汽车。

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

https://stackoverflow.com/questions/17160531

复制
相关文章

相似问题

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