c++ - glm glx 旋转不起作用

标签 c++ opengl rotation glm-math

我正在开发一个驱动模拟项目。我在 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) 上。

最佳答案

Lookrotate() 的签名处:

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/

相关文章:

c++ - ofstream/fstream 根本行不通,无论尝试什么解决方案

c++ - 将自定义传输插入gRPC

c++ - Valgrind 在应用程序运行时打印带有错误的摘要,但在完成后表示不会发生泄漏

C++ 引用参数函数

c++ - SOIL2 文件上未解析的外部符号 - 需要 opengl 调用

javascript - 三JS : Getting the rotation so one vector3 will face another vector3

opengl - 设置 OpenGL 多个渲染目标

c - C 函数 fread 在 Common Lisp 中的等价物是什么?

android - 为什么使用相机 Intent 捕获的图像会在 Android 上的某些设备上旋转?

ffmpeg - 旋转 mp4 视频而不重新编码