当前位置: 首页 > news >正文

SwiftUI简明概念(3):Path.addArc的clockwise方向问题

一、画个下半圆

SwiftUI中绘制下半圆的一个方法是使用Path.addArc,示例代码如下:

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

Path.addArc的参数分别表示圆弧的中心点位置,圆弧半径,开始角度,结束角度以及圆弧方向(顺时针还是逆时针)。我们来看看最终的效果:

如果我们把时钟放在屏幕上,顺时针从0到180度,应该是从3点到9点的下半圆区域,跟我们实际绘制方向刚好相反。为什么呢?

二、原因

绘制系统默认使用的是笛卡尔坐标系,这个没有问题,就像下图所示:

但是这里有个问题,绘制的实际效果还要考虑当前图形上下文的变换矩阵。在一个翻转坐标系统,例如UIKit和SwiftUI中,顺时针方向在应用翻转后就会变成逆时针方向:

所以最终我们得到了一个和直觉相反的上半圆。

三、参考

Is clockwise of Path.addArc in SwiftUI wrong? - Stack Overflow

Apple文档:Core Graphics/CGContext/addArc

http://www.lryc.cn/news/448260.html

相关文章:

  • $attrs 和 $listeners
  • 智尚招聘求职小程序V1.0.17
  • C语言编程-经典易错题1
  • 联宇集团:如何利用CRM实现客户管理精细化与业务流程高效协同
  • 如何排查 Windows 无法连接ubuntu远程服务器
  • Win10系统插入带有麦克风的耳机_麦克风不起作用_解决方法_亲测成功---Windows运维工作笔记054
  • 个人文章汇总(Spring合集:Spring+Mvc+Boot+Cloud)
  • 深入理解Java CompletableFuture多线程编排的最佳实践
  • 人工智能与机器学习原理精解【29】
  • 【Python】探索 Graphene:Python 中的 GraphQL 框架
  • Azure Data Box 80 TB 现已在中国区正式发布
  • “表观组学分析:汇智生物的创新技术应用“
  • 【web安全】——sql注入
  • vue基础面试题
  • 关系型数据库和非关系型数据库的区别
  • 学习之什么是迭代器
  • 数据结构-3.6.队列的链式实现
  • Java中去除字符串中的空格
  • AI大模型算法工程师就业宝典—— 高薪入职攻略与转行秘籍!
  • node-rtsp-stream、jsmpeg.min.js实现rtsp视频在web端播放
  • C++ 9.27
  • 让具身智能更快更强!华东师大上大提出TinyVLA:高效视觉-语言-动作模型,遥遥领先
  • Excel 获取某列不为空的值【INDEX函数 | SMALL函数或 LARGE函数 | ROW函数 | ISBLANK 函数】
  • 爆火!大模型算法岗 100 道面试题全解析,赶紧收藏!
  • Python画笔案例-068 绘制漂亮米
  • 得物App荣获国家级奖项,正品保障引领潮流电商新风尚
  • 【BurpSuite】SQL注入 | SQL injection(1-2)
  • ThreadPoolExecutor有哪些核心的配置参数?
  • 关于工作虚拟组的一些思考
  • 【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)