ios中的Mod运算符

nut*_*ron 18 c iphone objective-c modulo ios

一直在搜索ios中的mod运算符,就像%在c中一样,但没有找到它的运气.尝试在此链接中的答案,但它给出了相同的错误.我有一个浮点变量'rotationAngle',其角度根据用户的手指移动保持递增或递减.有点像这样:

if (startPoint.x < pt.x) {
    if (pt.y<936/2) 
        rotationAngle += pt.x - startPoint.x;
    else
        rotationAngle += startPoint.x - pt.x;   
    }
    rotationAngle = (rotationAngle % 360);
}
Run Code Online (Sandbox Code Playgroud)

我只需要确保rotationAngle不超过+/- 360限制.任何帮助任何身体.谢谢

Hai*_*lei 42

你可以使用fmod(for double)和fmodf(for float)math.h:

#import <math.h>

rotationAngle = fmodf(rotationAngle, 360.0f);
Run Code Online (Sandbox Code Playgroud)


kub*_*uba 12

使用fmod函数,它执行浮点模,用于定义,请参见此处:http://www.cplusplus.com/reference/clibrary/cmath/fmod/.它的工作原理示例(带有返回值):

fmodf(100, 360); // 100
fmodf(300, 360); // 300
fmodf(500, 360); // 140
fmodf(1600, 360); // 160
fmodf(-100, 360); // -100
fmodf(-300, 360); // -300
fmodf(-500, 360); // -140
Run Code Online (Sandbox Code Playgroud)

fmodf将"float"作为参数,fmod取"double"并fmodl取"double long",但它们都做同样的事情.