我有5個子視圖(白色)添加到超級視圖(灰色),當我旋轉超級視圖時,我想知道每個子視圖的角度(如1和2)紅色圓圈(子視圖的中心,並且紅色圓圈是在同一圓)獲取旋轉超級視圖後的實際角度
0
A
回答
0
從您的評論中,您似乎想要確定給定旋轉的五個圓的中心座標。這些中心都會躺在一個圓圈上。所以你的問題歸結爲圓上一個點的座標是多少?r對於角度θ。對於圓形的參數方程給你:
X = - [R COS θ
Ŷ = - [R罪θ
的角度,θ,在這些方程是在逆時針方向從正x軸測量的弧度。如果你的角度爲度,你會發現M_PI
常數π有用:
360度= 2個π弧度
剩下的就是簡單的數學,把你的旋轉角度給你A的角度(記住調整0爲x軸,如果需要逆時針測量),其他中心是72度的倍數(0.4 π弧度)。
HTH
0
我不知道我完全理解你的問題,但如果你只是需要採取已知點並旋轉一定度數,檢查出的文檔的CGAffineTransform。
例如:
CGAffineTransform rotation = CGAffineTransformMakeRotation (angle);
CGPoint rotatedPoint = CGPointApplyAffineTransform (startingPoint, rotation);
這個旋轉矩陣大約是(0,0),角弧度,所以你需要減去你的上海華邊界的中心得到一個相對偏移中心,做旋轉,並加回中心。或者你可以建立由翻譯,旋轉和反轉換組成的仿射變換,然後將其應用到上面的起點。
0
鑑於你已經知道主旋轉角度,這會給你在-180範圍內的角度。每個白盤的+180和立場:
GCFloat toRads = M_PI/180.0;
CGFloat angleA = self.rotationInDegrees;
if (angleA > 180) angleA -= 360;
CGFloat xA = self.radius * sinf(angleA * toRads);
CGFloat yA = self.radius * cosf(angleA * toRads);
CGFloat angleB = angleA + 72;
if (angleB > 180) angleB -= 360;
CGFloat xB = self.radius * sinf(angleB * toRads);
CGFloat yB = self.radius * cosf(angleB * toRads);
etc...
(這裏假設你的零度是從垂直如果從水平交換COS和罪惡過的)。
相關問題
- 1. 獲取旋轉角度旋轉視圖後
- 2. 超視圖旋轉後獲取子視圖的位置
- 3. 獲取實際角度postrotate
- 4. 獲取實際的視圖高度
- 5. 獲取超網格的實際寬度
- 6. 顯示視圖以特定角度旋轉並在觸摸時獲取視圖?
- 7. 超級視圖旋轉後UIButton沒有收到觸摸
- 8. Unity - Sprite旋轉+獲取角度
- 9. Iphone:OpenGL glLookAt:獲取旋轉角度
- 10. 在添加子視圖後獲取超級視圖
- 11. 旋轉角度
- 12. 在圖像上獲取對象的旋轉角度
- 13. 旋轉視角?
- 14. 如何旋轉MPMoviePlayerController視頻但不是其超級視圖
- 15. iOS獲取子視圖的旋轉
- 16. 我可以使用CGAffineTransformMakeRotation旋轉視角超過360度嗎?
- 17. 轉換CSS3動畫:旋轉。獲取旋轉元件當前角度的方法?
- 18. 如何獲得旋轉後的超級景觀框架?
- 19. 獲取實際的左旋轉div的頂部位置
- 20. Android角度旋轉
- 21. 角度針旋轉
- 22. 取消旋轉矩陣中的角度
- 23. WPF - 旋轉後找到圖像的實際頂部和左側
- 24. 在旋轉後獲取UIViewController視圖的大小
- 25. IOS中的多角度圖像旋轉
- 26. Leaflet.js中的地圖角度旋轉
- 27. 如何在旋轉後獲取SceneKit中子節點的實際位置?
- 28. 從ImageView旋轉後獲取圖像
- 29. 旋轉後獲取新圖像尺寸
- 30. android旋轉動畫中斷時獲取當前角度/度數
我認爲你需要提供更多的信息,因爲A的角度只是旋轉的角度,E的角度始終是72度。 – CRD
感謝您的回覆,角度AOE恰好是360/5 = 72度。當灰度視圖旋轉角度1(角度1可以是任何-180〜180度)時,我需要知道點A的位置(A是該子視圖的中心點)以及其他點如B,C,D和E 。 – Meonardo