2011-09-30 47 views
2

我正在面臨旋轉對象的典型問題。描述如下
給出我已經採取了兩個CGPoint讓說點1和點2
點1 =(50,50)
POINT2 =(150,50)
這點會畫的水平線。對象旋轉不正確 - iPhone應用程序

現在我正在繪製一個帶有該點的矩形。寬度爲100和高度爲10角爲0
見截圖
enter image description here

工作正常
現在我改變點讓利說
點1 =(50,50)
點2 =(50,150)
這一點將繪製一條垂直線。

對於矩形角爲90
除了這一點矩形沒有繪製正確
見截圖
enter image description here

我繪製矩形代碼:

CGPoint mid = CGPointMake((point1.x+point2.x)/2, (point1.y+point2.y)/2) 
    CGPoint UL = CGPointMake(mid.x + (Width/2) * cos (A) - (Height/2) * sin (A) , mid.y + (Height/2) * cos (A) + (Width/2) * sin (A)); 
    CGContextMoveToPoint(context, UL.x,routeView.frame.size.height - UL.y); 
    CGPoint UR = CGPointMake(mid.x - (Width/2) * cos (A) - (Height/2) * sin (A) , mid.y + (Height/2) * cos (A) - (Width/2) * sin (A)); 
    CGContextAddLineToPoint(context, UR.x,routeView.frame.size.height - UR.y); 
    CGPoint BR = CGPointMake(mid.x - (Width/2) * cos (A) + (Height/2) * sin (A) , mid.y - (Height/2) * cos (A) - (Width/2) * sin (A)); 
    CGContextAddLineToPoint(context, BR.x,routeView.frame.size.height - BR.y); 
    CGPoint BL = CGPointMake(mid.x + (Width/2) * cos (A) + (Height/2) * sin (A) , mid.y - (Height/2) * cos (A) + (Width/2) * sin (A)); 
    CGContextAddLineToPoint(context, BL.x,routeView.frame.size.height - BL.y); 
    CGContextAddLineToPoint(context, UL.x,routeView.frame.size.height - UL.y); 

    CGContextStrokePath(context); 

這裏是角度和它不是靜態的,中點是point1和point2的中間點

for more ref see this

我錯過了什麼嗎? 請幫助我,如果你有任何想法.......

感謝,

+0

'A'的價值是什麼? –

+0

a是一個角度,其中:第一種情況爲0,第二種情況爲90 – Jane

回答

2

讓我猜猜,它實際上是圍繞26度太遠了吧?

(×180)/ PI〜= 5156.62 =(360×14)+ + 26.62

你錯誤地旋轉它90個弧度

+0

謝謝,我完全忘記了弧度轉換的程度,再次感謝...... :) – Ankur