Основные графические объекты поворачивают прямоугольник - PullRequest
7 голосов
/ 08 января 2012

По этой формуле я получил угол

double rotateAngle = atan2(y,x)

. С помощью этого кода я могу нарисовать прямоугольник

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

Как мне повернуть прямоугольник вокруг угла?

1 Ответ

27 голосов
/ 08 января 2012

Вот как вы это сделаете:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...