glm::vec2 testVec(6,-4);
float len = testVec.length();
我得到了带有上述代码片段的值
2
。我相信我正在尝试获取由testVec
定义的向量的长度。您很清楚这不是向量的正确长度。我在这里想念什么?#1 楼
抱歉,您发布了这样一个琐碎的问题!问题已解决。我使用了错误的功能。正确的选择如下:glm::vec2 testVec(6,-4);
float len = glm::length(testVec);
同名的成员函数将返回组件数(即,
vec2::length
将始终产生2
,vec3::length
将始终产生3
,等)。
评论
$ \ begingroup $
道歉,我认为这是一个公平的问题,因为看到GLM的函数命名在这里很容易引起误解。我希望这将在将来成为有用的(简洁的)参考。
$ \ endgroup $
–马丁·恩德(Martin Ender)
16年1月1日在9:52
$ \ begingroup $
@MartinEnder并非犯有GLM罪:GLSL规范规定了这种混淆的存在:存在length(vecN)个免费函数返回vecN的规范,还有vecN.length()方法,返回vecN的尺寸。请参见§5.5矢量和标量分量以及GLSL 4.60规范的长度。
$ \ endgroup $
–俄罗斯
19年2月15日在16:16
$ \ begingroup $
你并不孤单。
$ \ endgroup $
–夏天的夏天
20年4月11日在12:01