我正在嘗試在目標C中做簡單的旋轉,並且有一些問題立即解決。有一件事是我從CGAffineTransformRotate得到的不一致以及在該函數中使用M_PI時如何不一致。CGAffineTransformRotate和M_PI不一致(目標C,iOS)
假設我這樣做,並將其附加到按鈕。當我按下一次它會逆時針旋轉180度(很好,並遵循文檔),但是當我再次按下它時,即使該值不是負數,它也會順時針旋轉180 。更改M_PI到-M_PI做同樣的事情,在旋轉無顯着差異:
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
self.transform = CGAffineTransformRotate(self.transform, M_PI); //Inconsistent
} completion:nil];
現在假設我改變M_PI到3.141593,這是當我打印出來的是M_PI包含值。現在,當我按下按鈕時,它工作得很好。兩次都會逆時針旋轉180度。當我將其更改爲-3.141593,將工作完全好太多,順時針方向:
self.transform = CGAffineTransformRotate(self.transform, 3.141593); //Works
當我用它打多了,行爲變得更加怪異。
假設我想旋轉90度(pi/2)。 M_PI現在具有相同的行爲作爲使用值,但旋轉相反它應該是什麼:
//Should be Clockwise but rotates CounterClockwise
self.transform = CGAffineTransformRotate(self.transform, -M_PI/2);
self.transform = CGAffineTransformRotate(self.transform, -1.5707965);
//Should be CounterClockwise but rotates Clockwise
self.transform = CGAffineTransformRotate(self.transform, M_PI/2);
self.transform = CGAffineTransformRotate(self.transform, 1.5707965);
如果我要旋轉180度(PI)東西,行爲是剛剛旋轉最短即使我指定了正面或負面的旋轉。當我旋轉360度(2PI)時,它甚至不旋轉。
有人可以告訴我爲什麼發生這些事情,我可以做它使其更一致? 我的第二個問題是如何旋轉270度和360度的東西。
謝謝。
爲什麼旋轉π/ 2(90)將其旋轉到3π/ 2(270)的位置,反方向旋轉。 – FireDragonMule