Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么路径朝向相反的方向?

为什么路径朝向相反的方向?
EN

Stack Overflow用户
提问于 2021-02-20 20:58:39
回答 1查看 40关注 0票数 -1

我有以下绘制圆形扇形的代码片段:

代码语言:javascript
运行
AI代码解释
复制
struct CircularSector: Shape {
    let centralAngle: Angle
    
    func path(in rect: CGRect) -> Path {
        let radius = min(rect.width, rect.height) / 2
        let center = CGPoint(x: rect.midX, y: rect.midY)
        var path = Path()
        path.addArc(center: center, radius: radius, startAngle: .degrees(0), endAngle: centralAngle, clockwise: true)
        path.addLine(to: center)
        path.closeSubpath()
        return path
    }
}

当我预览的时候,

代码语言:javascript
运行
AI代码解释
复制
struct CircularSector_Previews: PreviewProvider {
    static var previews: some View {
        CircularSector(centralAngle: .degrees(45)).fill(Color.black)
        }
    }
}

它不是顺时针方向绘制45°扇区,而是逆时针方向绘制315°扇区。这是正确的行为,还是我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-20 21:13:24

它看起来确实像是个bug。(请参阅https://stackoverflow.com/a/57034585/341994发生完全相同的事情。)在UIKit端,这不是UIBezierPath的行为方式。如果我们说,作必要的修改:

代码语言:javascript
运行
AI代码解释
复制
let path = UIBezierPath()
    path.addArc(withCenter: center, radius: radius, 
        startAngle: 0, endAngle: .pi/4, clockwise: true)
    path.addLine(to: center)
    path.close()

我们会得到

这正是你所期望的。很容易看出如何进行补偿,但似乎您正在补偿的是SwiftUI路径实现中的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66296490

复制
相关文章
对象不再使用时,为什么要赋值为 null ?
许多Java开发者都曾听说过“不使用的对象应手动赋值为null“这句话,而且好多开发者一直信奉着这句话;问其原因,大都是回答“有利于GC更早回收内存,减少内存占用”,但再往深入问就回答不出来了。
用户4283147
2022/10/27
5700
对象不再使用时,为什么要赋值为 null ?
Java : 对象不再使用时,为什么要赋值为 null ?
原文链接:http://www.polarxiong.com/
业余草
2019/12/03
1.3K0
Oracle PL/SQL例9:为变量赋值
本系列以摘自《Database PL/SQL Language Reference》的PL/SQL代码例为主进行介绍。
SQLplusDB
2022/12/20
1.2K0
java类和对象——变量赋值方法
此处的set和get的方法可以用 atl + insert 选择Getter and Setting实现
小雨的分享社区
2022/10/26
1.2K0
变量赋值
Tcl脚本的构成如图所示,可以只包含一条命令,也可以包含多条命令,命令之间可以是分号隔开,也可以是换行。如下图所示。
Lauren的FPGA
2019/10/31
2.7K0
使用 Apollo 为静态变量赋值的方法
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
CG国斌
2021/12/07
2.9K0
[Go] 理解(*interface{})(nil) 赋值的变量是否为nil
var c interface{} c = (*interface{})(nil)
唯一Chat
2021/05/13
1.1K0
[Go] 理解(*interface{})(nil) 赋值的变量是否为nil
java中为final变量赋值的几种方式
使用final修饰变量,很多人第一时间想到的就是不可变。然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修改的变量的赋值问题。
用户7886150
2020/12/07
2.6K0
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
" 匿名对象 " 的 作用域 仅限于其所在的 表达式 , 这句表达式 执行完毕后 , 匿名对象 自动销毁 ;
韩曙亮
2023/10/15
5200
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
变量解构赋值
既然有时间在最后壮烈牺牲,不如完美地活到最后一刻——坂田银时/银魂 前两天有朋友问我,这个写法看不懂,让我给他讲讲 它这里用到了一个ES6的新特性:解构赋值 这里简单复现一下 var param = { columns: { property: "我是property" }, data: ["我是", "data", "数组"] } var {columns,data} = param console.log(columns) console.log(data) 输出结果 可以看到
阿超
2022/08/16
1.9K0
变量解构赋值
ES6基础语法之变量解构赋值(对象)
昨天简单看了并且了解了数组的解构赋值,今天进一步看一下对象的解构赋值,并逐渐深入看一些复杂的对象结构赋值是怎么样子的!!!
十月梦想
2018/08/29
6230
makefile变量赋值
在定义变量的值时,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来在用变量定义变量的值。
全栈程序员站长
2022/07/15
1.5K0
js中多个Date对象变量间赋值互相影响
<head> <title></title> <script type="text/javascript"> function pageLoad() { var dtmNow = new Date(); var dtmDt1 = dtmNow; dtmDt1.setMinutes(20); var divContent = document.getElementById("divC
欢醉
2018/01/22
6.8K0
JAVA学习笔记之JAVA 对象引用以及赋值
       初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用,
Jetpropelledsnake21
2019/02/15
8980
变量的解构赋值
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
小小杰啊
2022/12/21
3.9K0
变量的解构赋值
上面代码中,函数move的参数是一个对象,通过对这个对象进行解构,得到变量x和y的值。如果解构失败,x和y等于默认值。
达达前端
2019/08/19
4.2K0
【小家java】java中为final变量赋值的几种方式
final修饰的变量,很多人第一印象就是不可变三个字。然后以为它只能在申明的时候就必须得赋值,其实不然,本文就重点讲述平时我们用到的final变量的赋值问题。
YourBatman
2019/09/03
2.9K0
PHP的变量赋值
这个标题估计很多人会不屑一顾,变量赋值?excuse me?我们学开发的第一课就会了好不好。但是,就是这样基础的东西,反而会让很多人蒙圈,比如,值和引用的关系。今天,我们就来具体讲讲。
硬核项目经理
2019/12/04
3.6K0
随笔:Golang 循环变量引用问题以及官方语义修复
这篇文章谈一个已经在 Golang 中存在多年的,几乎每一个新手都要被坑一遍的设计:引用捕获了循环变量,且逃逸出循环迭代范围而造成的逻辑错误。
Miigon
2023/03/16
1.8K0
点击加载更多

相似问题

oNode被设置为零,但是为什么,以及我如何修复它?

13

为什么布尔变量没有被赋值为true?

10

类变量被赋值为null

34

为什么方法参数被重新赋值为局部变量?

20

宽度不匹配:信号赋值的向量范围内的变量。为什么以及如何修复?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档