glm中有计算这个单位向量的函数吗?
Is there a function to calculate this unit vector in glm?
我在 C++ 中有以下函数来计算单位向量:
glm::vec3 unit_vector(glm::vec3 v) {
return v / (float)v.length();
}
是否有我可以使用的 glm 等价物?
好吧,v.length()
实际上 returns 向量的分量数(在本例中为:3
),因此此函数并不像您认为的那样工作。有一个 glm
函数可以将向量的大小更改为 1
(使其成为单位向量)。此操作称为归一化。 glm::normalize
可以做到。
你的函数可以这样实现:
#include <glm/geometry.hpp>
glm::vec3 unit_vector(glm::vec3 v) {
return glm::normalize(v);
}
或者直接使用glm::normalize
。
我在 C++ 中有以下函数来计算单位向量:
glm::vec3 unit_vector(glm::vec3 v) {
return v / (float)v.length();
}
是否有我可以使用的 glm 等价物?
好吧,v.length()
实际上 returns 向量的分量数(在本例中为:3
),因此此函数并不像您认为的那样工作。有一个 glm
函数可以将向量的大小更改为 1
(使其成为单位向量)。此操作称为归一化。 glm::normalize
可以做到。
你的函数可以这样实现:
#include <glm/geometry.hpp>
glm::vec3 unit_vector(glm::vec3 v) {
return glm::normalize(v);
}
或者直接使用glm::normalize
。