GLM으로 벡터 길이 얻기


14

GLM 라이브러리의 작동 방식에 대해 상당히 혼란 스럽거나 잘못 사용하고 있습니다.

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

float len = testVec.length();

2위의 코드 스 니펫으로 값 을 얻습니다 . 에 의해 정의 된 벡터의 길이를 얻으려고한다고 생각합니다 testVec. 벡터의 정확한 길이가 아니라는 것을 잘 알고 있습니다. 내가 여기서 무엇을 놓치고 있습니까?

답변:


15

사소한 문제를 게시 한 것에 대해 죄송합니다. 문제가 해결되었습니다. 잘못된 기능을 사용하고있었습니다. 다음은 올바른 것입니다.

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

같은 이름의 멤버 함수 (즉, 대신 구성 요소의 수를 반환 vec2::length항상 얻을 것입니다 2, vec3::length항상 얻을 것 3등).


7
사과하지 마십시오. GLM의 기능 명명이 여기에서 상당히 오도되는 것을 보는 것은 공정한 질문이라고 생각합니다. 앞으로 이것이 유용한 (그리고 간결한) 참조가 될 것으로 기대합니다.
Martin Ender

3
이 GLM 아니다 @MartinEnder 유죄 누가 다음 GLSL 스펙이 존재하는이 혼란을 규정 : 거기에 length(vecN)자유의 규범을 반환하는 기능 vecN, 및 vecN.length()의 차원을 반환하는 방법은 vecN. §5.5 벡터 및 스칼라 구성 요소 및 GLSL 4.60 사양의 길이 를 참조하십시오 .
Ruslan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.