GLMでベクターの長さを取得する


14

GLMライブラリがどのように動作しているか、または不適切に使用しています。

glm::vec2 testVec(6,-4);

float len = testVec.length();

2上記のコードスニペットで値を取得します。で定義されたベクトルの長さを取得しようとしていますtestVec。あなたはそれがベクトルの正しい長さではないことをよく知っています。ここで何が欠けていますか?

回答:


14

このような些細な問題を投稿してすみません!問題は解決しました。間違った機能を使用していました。ここに正しいものがあります:

glm::vec2 testVec(6,-4);
float len  = glm::length(testVec);

同じ名前のメンバ関数は、(すなわち、代わりの構成要素の数を返すvec2::length常にもたらす2vec3::length常にもたらす3、など)。


7
謝るな これは将来役に立つ(そして簡潔な)参照になると思います。
マーティンエンダー

2
@MartinEnder有罪となるのはGLMではありません:GLSL仕様は、この混乱の存在を規定しています:length(vecN)の標準を返す無料の関数vecNvecN.length()、次元を返すメソッドがありvecNます。§5.5Vector and Scalar Components and Length of GLSL 4.60 specを参照してください。
ルスラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.