glm库得到两向量夹角
时间: 2023-11-22 10:48:38 浏览: 171
要计算两个向量之间的夹角,可以使用glm库中的函数。首先,需要使用glm库中的normalize函数对两个向量进行标准化,确保它们的长度为1。然后,可以使用glm库中的dot函数计算两个向量的点积,最后使用glm库中的acos函数将点积转换为角度值。
下面是一个示例代码:
```cpp
#include <iostream>
#include <glm/glm.hpp>
#include <glm/gtc/constants.hpp>
#include <glm/gtx/compatibility.hpp>
int main() {
glm::vec3 vector1(1.0f, 2.0f, 3.0f);
glm::vec3 vector2(4.0f, 5.0f, 6.0f);
glm::vec3 normalizedVector1 = glm::normalize(vector1);
glm::vec3 normalizedVector2 = glm::normalize(vector2);
float dotProduct = glm::dot(normalizedVector1, normalizedVector2);
float angleInRadians = glm::acos(dotProduct);
float angleInDegrees = glm::degrees(angleInRadians);
std::cout << "夹角(弧度): " << angleInRadians << std::endl;
std::cout << "夹角(度数): " << angleInDegrees << std::endl;
return 0;
}
```
请确保在编译时链接了glm库,并在代码中包含所需的头文件。以上示例假设使用的是3D向量,如果是2D向量,可以使用glm::vec2和对应的函数。
阅读全文