SwiftUI 中 Path.addArc 的顺时针方向是错误的吗?

ech*_*cho 8 path swiftui

以下是苹果官方文档:

此方法创建一个开放的子路径。创建的弧位于指定圆的周长上。在默认坐标系中绘制时,起始角和终止角基于图 1 所示的单位圆。例如,指定起始角为 0 弧度,终止角为 ? 弧度,并将顺时针参数设置为 true 绘制圆的下半部分。但是,指定相同的开始和结束角度但将顺时针参数设置为 false 会绘制圆的上半部分。

但我发现结果似乎恰恰相反。下面是我的代码

var body: some View {
    Path { path in
        path.addArc(center: CGPoint(x: 200, y: 370), radius: 50, startAngle: Angle(degrees: 0), endAngle: Angle(degrees: 180.0), clockwise: true)
        path.closeSubpath()
    }
}
Run Code Online (Sandbox Code Playgroud)

我将顺时针参数设置为 true 但结果是圆的上半部分,而不是下半部分

在此处输入图片说明

我对 Apple 的文档理解有误吗?我的 Xcode 版本是 11.0 beta 4 (11M374r)

rob*_*off 18

clockwise参数的含义存在于量子叠加中,当您检查结果时,该叠加会崩溃。不幸的是,它总是与您想要的含义相反。

更严重的是,我认为“默认坐标系”是指标准数学笛卡尔坐标系,其中 y 值随着您从画布底部移动到顶部而增加。但是 UIKit 和 SwiftUI 使用翻转几何,其中 y 值随着您从画布顶部移动到底部而增加。这翻转了“顺时针”的含义。

  • 这可能是我在堆栈上读过的最好的答案 (3认同)
  • 但你的回答对我来说没有任何意义,我们不是在谈论轴,我们在谈论旋转,顺时针或逆时针旋转,苹果使用了顺时针这个词,我不会将时钟倒挂然后计算哪个方向是顺时针还是逆时针,我只是说这是苹果的错误,除非他们必须添加有关定义时钟或顺时针的信息,例如时钟是蒂姆库克办公室倒挂的时钟或至少类似的东西。 (3认同)