我有这个浮动角度。
Camera.roty += (float) diffx * 0.2;
其中diff是鼠标位置的变化。
在OpenGL中,如果它超过360或低于0,它将包装它,但如果我想验证角度是否在0到180之间,我怎么能这样做呢?
由于
答案 0 :(得分:2)
如果我理解你的问题你基本上是在找这样的东西吗?:
float Wrap( const float Number, const float Max, const float Min ) {
if( Number > 0.0f ) {
return fmod( Number, Max ) + Min;
}
else {
return Max - fmod( abs( Number ), Max ) + Min;
}
}
答案 1 :(得分:1)
要处理浮点值,您可以这样做:
angle = angle - floor(angle / 360) * 360;
这也应该正确处理负值(-1将转换为359)。
答案 2 :(得分:0)
根据@bta的评论:
为什么不使用:
angle % 180
并将该数字保存为角度?