好的,这是我的问题,

假设您的方位角为80度。我想以一个简单的10x10正方形在iPhone屏幕上绘制出来。让我们来看看肖像模式下iPhone的顶部是北方。

关于如何实现此目标的任何想法?

顺便说一句-我不想使用以下方法:

CGAffineTransform where  = CGAffineTransformMakeRotation(degreesToRadians(x_rounded));
[self.compassContainer2 setTransform:where];


我想通过设置iPhone屏幕上的X -Y线在屏幕上手动绘制。

最佳答案

- (void)drawRect:(CGRect)rect
{
    float compass_bearing = 80.0;  // 0 = North, 90 = East, etc.

    CGContextRef theContext = UIGraphicsGetCurrentContext();
    CGMutablePathRef path = CGPathCreateMutable();

    CGPathMoveToPoint(path, NULL, 5.0, 5.0);
    CGPathAddLineToPoint(path, NULL,
        5.0 + 5.0 * cos((compass_bearing - 90.0) * M_PI / 180.0),
        5.0 + 5.0 * sin((compass_bearing - 90.0) * M_PI / 180.0));

    CGContextSetLineWidth(theContext, 2.0);
    CGContextSetStrokeColorWithColor(theContext, [UIColor blackColor].CGColor);
    CGContextAddPath(theContext, path);
    CGContextStrokePath(theContext);

    CGPathRelease(path);
}

10-06 08:42