2012-01-07 4 views
7

を回転させ、私はこのコードで角度コアグラフィックスは、この式では、長方形

double rotateAngle = atan2(y,x) 

を得た私は、私は角度の周りに長方形を回転させることができますどのように

CGRect rect = CGRectMake(x,y , width ,height); 
CGContextAddRect(context, rect); 
CGContextStrokePath(context); 

四角形を描くことができますか?ここで

答えて

27

は、あなたがそれを行うだろう方法は次のとおりです。

CGContextSaveGState(context); 

CGFloat halfWidth = width/2.0; 
CGFloat halfHeight = height/2.0; 
CGPoint center = CGPointMake(x + halfWidth, y + halfHeight); 

// Move to the center of the rectangle: 
CGContextTranslateCTM(context, center.x, center.y); 
// Rotate: 
CGContextRotateCTM(context, rotateAngle); 
// Draw the rectangle centered about the center: 
CGRect rect = CGRectMake(-halfWidth, -halfHeight, width, height); 
CGContextAddRect(context, rect); 
CGContextStrokePath(context); 

CGContextRestoreGState(context); 
+0

THXあなたの助け!それはうまくいった! – user1125890

+0

問題ありません!私はあなたが私の答えを受け入れたとマークしたらそれを感謝します!ありがとう。 – Steve

+4

パーフェクト。 modはこれを受け入れられたものとしてマークし、user1125890が明らかに優れたことをしているのを見てください。私はこれを自分で決して決めることはできませんでした。ありがとうございました! – Accatyyc

関連する問題