我正在开发一个驱动模拟项目。我在 VS2010 IDE 上使用 opengl。
对象“car_param”有一个 vector glm::vec3“dir”(不重要),我想使用 glm\glx 旋转函数对其进行旋转。
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) 上。
最佳答案
Look在 rotate()
的签名处:
template< typename T >
detail::tvec3< T > rotate( detail::tvec3< T > const &v, T const &angle, detail::tvec3< T > const &normal )
请注意,v
是作为 const 引用传入的。
rotate()
返回一个旋转 vector 。它不会(不能!)原地旋转 v
。
试试这个:
car_param->dir = glm::rotate(car_param->dir,0.5f,glm::vec3(0,1,0));
关于c++ - glm glx 旋转不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20849262/