2012-11-30 30 views
1

那麼,
我有一個這樣的圓圈在照片中。
我想旋轉我的紅線到我想要的程度。旋轉線就像平衡板

圓圈從0度到300度開始。

我開始做一些與

CGFloat wAngle = Degrees2Radians([_Weight.text intValue]/300.0*360); 
_Arrow.layer.transform = CATransform3DMakeRotation (wAngle + M_PI, 0, 0, 1); 

但在這個片段中,0值之上,而不是底部。
可能是因爲我不是在三角天才... :)

enter image description here

什麼是正確旋轉方向的正確方法是什麼?
如何設定角度值?

謝謝。

+0

相對角度增加150價值? – PeterWong

+0

什麼的初步框架箭頭圖層? – Moxy

+0

@Moxy在屏幕的中心,因爲我沒有特別的佈局,對我來說這個框架是無所謂的,爲什麼你問我這個? – elp

回答

2

您不需要轉換度數和弧度。你有一個相對值:

CGFloat relativeAngle = [_Weight.text intValue]/300.0; 

所以只是用它:

_Arrow.layer.transform = CATransform3DMakeRotation(relativeAngle * M_PI*2, 0, 0, 1); 

如果開始是錯的只是改變你觀點的初始位置。 (或者總結錯誤的角度,以新的角度,就像(relativeAngle * M_Pi*2 + correction)

// what PI means in degrees 
M_PI * 2 = 360° 
M_PI  = 180° 
M_PI_2 = 90° 
M_PI_4 = 45° 
0

你可以有你這樣

// transform your degrees (0->300) to radians 
// (considering your starting direction is at M_PI*3/2) 
CGFloat relativeAngle = - [_Weight.text intValue] * M_PI/150.0; 

_Arrow.layer.transform = CATransform3DMakeRotation(relativeAngle, 0, 0, 1);