cの%
のように、iOSでmod演算子を検索してきましたが、それを見つけることができませんでした。これで答えを試しました link しかし、同じエラーが発生します。ユーザーの指の動きに基づいて角度が増加または減少し続けるfloat変数「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);
}
私はrotationAngleが+/- 360の制限を超えないことを確認する必要があります。どんな体も助けてくれます。ありがとう
Math.hのfmod
(double
の場合)およびfmodf
(float
の場合)を使用できます。
#import <math.h>
rotationAngle = fmodf(rotationAngle, 360.0f);
定義については、浮選点モジュロを実行する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
fmodf
は引数として「float」を取り、fmod
は「double」を取り、fmodl
は「doublelong」を取りますが、これらはすべて同じことを行います。
最初にintにキャストしました
rotationAngle = (((int)rotationAngle) % 360);
より正確に使用したい場合
float t = rotationAngle-((int)rotationAngle);
rotationAngle = (((int)rotationAngle) % 360);
rotationAngle+=t;