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