Я довольно новичок в Quartz 2D.
Представьте себе следующий сценарий:
У вас есть мини-карта в форме круга.
Я рисую треугольник (дуга не важна сейчас) в верхней части карты. Эта форма представляет видимую область.
Мне нужно, чтобы форма треугольника вращалась вдоль мини-карты, когда пользователь меняет ориентацию.
В настоящее время путь рисуется так:
CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);
CGPath visibleAreaPath = CGPathCreateMutable();
CGPathMoveToPoint(visibleAreaPath, &transform, miniMapCenter.x, miniMapCenter.y);
CGPathAddLineToPoint(visibleAreaPath, &transform, 18.0, 8.0);
CGPathAddLineToPoint(visibleAreaPath, &transform, 66.0, 8.0);
CGPathCloseSubpath(visibleAreaPath);
Затем я рисую путь, используя CAShapeLayer, например:
CALayer *rootLayer = [visibleAreaView layer];
visibleAreaShape = [CAShapeLayer layer];
[visibleAreaShape setFillColor:[UIColor colorWithHue:0.584 saturation:0.8 brightness:0.9 alpha:0.6].CGColor];
[visibleAreaShape setFillRule:kCAFillRuleNonZero];
[visibleAreaShape setAnchorPoint:CGPointMake(0.5, 0.5)];
[rootLayer addSublayer:visibleAreaShape];
[visibleAreaShape setPath:visibleAreaPath];
Путь вращается, но не на основе данного источника.
Имейте в виду, что установка точки привязки слоя мне не помогает, поскольку мне нужно повернуть путь (в конечном итоге мне даже не нужно его отображать, поскольку я буду использовать его, чтобы определить, какие точки видны на мини карта).
Есть идеи, как этого добиться?
Спасибо.