2012-01-07 51 views
7

Với công thức này, tôi có gócđồ họa lõi xoay hình chữ nhật

double rotateAngle = atan2(y,x) 

với mã này tôi có thể vẽ một hình chữ nhật

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

Làm thế nào tôi có thể xoay hình vuông bao quanh góc?

Trả lời

27

Đây là cách bạn muốn làm điều đó:

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 giúp đỡ của bạn! nó hoạt động tốt! – user1125890

+0

Không sao cả! Tôi đánh giá cao nếu bạn đánh dấu câu trả lời của tôi là được chấp nhận! Cảm ơn. – Steve

+4

Hoàn hảo. Một mod nên đánh dấu điều này là được chấp nhận, nhìn thấy như user1125890 dường như có những điều tốt hơn để làm. Tôi không bao giờ có thể tự tìm ra điều này. Cảm ơn bạn! – Accatyyc

Các vấn đề liên quan