gpt4 book ai didi

ios - 在 iOS 中顺时针绘制圆弧会导致逆时针圆弧

转载 作者:可可西里 更新时间:2023-11-01 03:30:36 31 4
gpt4 key购买 nike

我使用下面的代码在圆的下半部分画一条弧。

根据 Apple 文档:

This method creates an open subpath. The created arc lies on the perimeter of the specified circle. When drawn in the default coordinate system, the start and end angles are based on the unit circle shown in Figure 1. For example, specifying a start angle of 0 radians, an end angle of π radians, and setting the clockwise parameter to YES draws the bottom half of the circle. However, specifying the same start and end angles but setting the clockwise parameter set to NO draws the top half of the circle.

enter image description here我写了

    std::complex<double> start1(   std::polar(190.0,0.0) );


CGPoint targetStart1 = CGPointMake(start1.real() + 342.0, start1.imag() + 220.);

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, targetStart1.x, targetStart1.y);
CGPathAddArc(path, NULL, 342.0, 220.0, 190, 0.0, PI_180, YES );
CGContextAddPath(context, path);
CGContextSetLineWidth( context, 15.0 );

// set the color for the stroked circle
CGContextSetStrokeColorWithColor( context, [UIColor greenColor].CGColor);

CGContextStrokePath(context);
CGPathRelease(path);

但是,圆弧绘制在圆的上半部分(见绿环)。我想知道我是否不小心在代码中的某处翻转了协调系统,但我不知道我应该搜索什么命令。

enter image description here

感谢您的帮助。

最佳答案

根据 Vinzzz 的评论:出于某些不透明的原因,Apple 在 OS X 和 iOS 之间翻转了窗口管理器的坐标系。 OS X 使用方格纸布局,原点在左下方,正 y 向上。 UIKit 使用英文阅读顺序,原点在左上,正 y 向下。

Core Graphics 保留了 OS X 的方法; UIKit 只是将其输出颠倒过来。如果您真的想说服自己,请加入一些核心文本。

标准解决方案是平移和缩放当前变换矩阵作为任何 drawRect: 中的前两个步骤,有效地将原点移回该 View 的左下角并翻转 y 坐标轴.

关于ios - 在 iOS 中顺时针绘制圆弧会导致逆时针圆弧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24782864/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com