glm glx 旋转不起作用

Posted

技术标签:

【中文标题】glm glx 旋转不起作用【英文标题】:glm glx rotation does not work 【发布时间】:2013-12-30 23:23:00 【问题描述】:

我正在做一个驱动模拟项目。我在 VS2010 IDE 上使用 opengl。

我想使用 glm\glx 旋转函数旋转对象“car_param”(不重要)的向量 glm::vec3 'dir'。

glm::rotate(car_param->dir,0.5f,glm::vec3(0,1,0));

编译成功,运行时没有效果。 我尝试使用以下方法对其进行测试:

cout<<car_param->dir.x<<"\t"<<car_param->dir.y<<"\t"<<car_param->dir.z<<"\n";

就在旋转之后,但它停留在初始值 (0,0,-1) 上。

【问题讨论】:

【参考方案1】:

Lookrotate()签名处:

template< typename T >
detail::tvec3< T > rotate( detail::tvec3< T > const &v, T const &angle, detail::tvec3< T > const &normal )

请注意,v 是作为 const 引用传入的。

rotate() 返回一个旋转的向量。它不会(不能!)就地旋转v

试试这个:

car_param->dir = glm::rotate(car_param->dir,0.5f,glm::vec3(0,1,0));

【讨论】:

以上是关于glm glx 旋转不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为 glm 翻译添加统一向量在 OpenGL 中不起作用

使用 GLM(旋转)为 OpenGL 创建变换矩阵

atan2f() 不起作用

为啥这个元素旋转不起作用?

为啥这个元素旋转不起作用?

旋转 NSButton 不起作用