2012-01-07 1 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

ТНХ ваша помощь! он отлично работал! – user1125890

+0

Нет проблем! Я был бы признателен, если бы вы пометили мой ответ как принятый! Благодарю. – Steve

+4

Отлично. Мод должен отмечать это как принятое, видя, что пользователь1125890, по-видимому, имеет лучшие дела. Я никогда бы не подумал об этом сам. Спасибо! – Accatyyc

Смежные вопросы