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

SwiftUI 动画进阶:实现行星绕圆周轨道运动

在这里插入图片描述

0. 概览

SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。

在这里插入图片描述

如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。

在本篇博文中,您将学到以下内容:

  • 0. 概览
  • 1. 如何实现绕圆轨迹运动?
  • 2. SwiftUI 自定义动画
  • 3. 如何计算运行轨道的大小?
  • 4. 源代码
  • 5. 总结

小伙伴们还等什么呢?一起跃入动画的世界吧!

Let‘s go!!!😉


1. 如何实现绕圆轨迹运动?

要想让视图按圆的轨迹运动有很多种方法,一种是规划好运动轨迹上每一个点的坐标

相关文章:

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…...

物理试题-空气净化器

详细解释...

Es、kibana安装教程-ES(二)

上篇文章介绍了ES负责数据存储,计算和搜索,他与传统数据库不同,是基于倒排索引来解决问题的。Kibana是es可视化工具。 分布式搜索ElasticSearch-ES(一) 一、ElasticSearch安装 官网下载地址:https://www…...

leetcode 917.仅仅反转字母

⭐️ 题目描述 🌟 leetcode链接:仅仅反转字母 ps: 这道题思路很简单,只需要一个下标在前一个下标在后,分别找是字母的字符,找到之后交换即可。 代码: class Solution { public:bool isAlpha …...

有没有推荐的golang的练手项目?

前言 下面是github上的golang项目,适合练手,可以自己选择一些项目去练习,整理不易,希望能多多点赞收藏一下!废话少说,我们直接进入正题>>> 先推荐几个教程性质的项目(用于新手学习、巩…...

springBoot的日志文件

日志是程序的重要组成部分,主要可以用来定位和排查问题。除此之外,还可以用来: 1. 记录用户的登录日志,方便分析用户是正常登录还是恶意破解; 2. 记录系统的操作日志,方便数据恢复和定位操作人;…...

Linux学习之iptables的nat表

iptables -t nat 命令 规则链 规则是格式命令。 PREROUTING一般用于内网,用于目的地址转换。 POSTROUTING一般用于外网,用于源地址转换。 iptables -t nat -A PREROUTING -i eth0 -d 114.115.116.117 -p tcp --dport 80 -j DNAT --to-destination 10.0.0…...

【数据结构】 ArrayList简介与实战

文章目录 什么是ArrayListArrayList相关说明 ArrayList使用ArrayList的构造无参构造指定顺序表初始容量利用其他 Collection 构建 ArrayListArrayList常见操作获取list有效元素个数获取和设置index位置上的元素在list的index位置插入指定元素删除指定元素删除list中index位置上…...

您的网站不应该只提供一套通用 API

后端应该提供两套 API,一套是外部使用的通用 API,服务特定的数据,另一套是自家使用的应用 API,服务特定的页面。 在当今的web开发中,构建一个提供JSON服务的后端和一个渲染应用程序的前端是很流行的。我不太喜欢&…...

vue tree禁用和多选变为单选

禁用的话和后台协调一下&#xff0c;参数中多返回一个disabled 多选变单选 在tree结构中加入一个方法 <el-treeaccordion:data"deptOptions":props"defaultProps"show-checkbox:expand-on-click-node"false":filter-node-method"filte…...

ES6新特性。对象、数组新增方法

ES6新特性 ES6&#xff08;ECMAScript 2015&#xff09;是 JavaScript 的一个重要版本&#xff0c;引入了许多新的语法和功能&#xff0c;增强了语言的表达能力和开发体验。以下是 ES6 中一些重要的新特性的全面总结&#xff1a; let 和 const 声明&#xff1a; let 和 const …...

request发送http请求

今天正式开始为大家介绍接口自动化&#xff0c;相信很多做测试的朋友&#xff0c;都用过一些工具&#xff0c;比如jmeter&#xff0c;loadrunner&#xff0c;postman等等&#xff0c;所以今天先给那些基础不太好的同学&#xff0c;先讲讲postman如何来测接口以及如何用pthon代码…...

leaflet实现MARK指向的方向随机

效果图&#xff1a; npm install leaflet-rotatedmarkerL.marker([48.8631169, 2.3708919], {rotationAngle: Math.random() * 180, // 旋转角度&#xff0c;以度为单位&#xff0c;顺时针方向。rotationOrigin: "center center", // 旋转中心 }).addTo(map);...

如何使用Python编写小游戏?

大家好&#xff0c;我是沐尘而生&#xff0c;如果你是一个热爱编程的小伙伴&#xff0c;又想尝试游戏开发&#xff0c;那么这篇文章一定能满足你的好奇心。不废话&#xff0c;让我们马上进入Python游戏开发的精彩世界吧&#xff01; Python游戏开发的魅力 编写小游戏不仅仅是锻…...

【Leetcode】84.柱状图中最大的矩形(Hard)

一、题目 1、题目描述 给定 n n n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例1: 输入:heights = [2,1,5,6,2,3] 输出:10 解释:最大的矩形为图中红色区域,面积为 10示例2:…...

Arraylist集合

保存数据会经常使用到数组&#xff0c;但数组存在以下几个缺陷: 长度固定&#xff1b;保存的必须为同一类型的元素&#xff0c;&#xff08;基本数据类型&#xff0c;或引用数据类型&#xff09;&#xff1b;使用数组进行增加元素的步骤比较麻烦&#xff1b; 这个时候就需要用一…...

https的原理和方案

文章目录 https原理为什么要加密常见的加密方式对称加密非对称加密数据摘要&&数据指纹数据签名 https的几种工作方案方案一&#xff1a;只使用对称加密方案二&#xff1a;只使用非对称加密方案三&#xff1a;两端都使用非对称加密方案四&#xff1a;非对称加密 对称加…...

VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点

判断 一个点 ,判断是否在风格 stl 模型内部&#xff0c;或表面&#xff1a; 目录 1.方案一&#xff1a;使用vtkCellLocator FindClosestPoint 找到模型上距离给定点最近的一点&#xff0c;计算两点的距离 &#xff0c;小于某一阈值 则认为此点在模型上&#xff1b; 2.方案二…...

【数据结构OJ题】链表的回文结构

原题链接&#xff1a;https://www.nowcoder.com/practice/d281619e4b3e4a60a2cc66ea32855bfa?tpId49&&tqId29370&rp1&ru/activity/oj&qru/ta/2016test/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 在做这道…...

Nginx常见的三个漏洞

目录 $uri导致的CRLF注入漏洞 两种常见场景 表示uri的三个变量 案例 目录穿越漏洞 案例 Http Header被覆盖的问题 案例 $uri导致的CRLF注入漏洞 两种常见场景 用户访问http://example.com/aabbcc&#xff0c;自动跳转到https://example.com/aabbcc 用户访问http://exa…...

5秒无损转换B站缓存视频:m4s-converter完整使用指南

5秒无损转换B站缓存视频&#xff1a;m4s-converter完整使用指南 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了珍贵的学习…...

LearningX:构建结构化开发者知识体系,从基础到架构的实践指南

1. 项目概述&#xff1a;一个面向开发者的系统性学习仓库最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“LearningX”。光看名字&#xff0c;你可能会觉得这又是一个普通的“Awesome-XXX”列表&#xff0c;或者是一堆学习资料的简单堆砌。但当我点进去&#xff0c;花了一…...

智能路由器项目解析:基于策略路由实现多线路流量智能调度

1. 项目概述&#xff1a;一个“聪明”的路由器能做什么&#xff1f;最近在GitHub上看到一个挺有意思的项目&#xff0c;叫smart-router&#xff0c;作者是c0nSpIc0uS7uRk3r。光看名字&#xff0c;你可能会觉得这又是一个关于家庭网络优化的工具&#xff0c;但点进去仔细研究后&…...

Linuxbonding链路异常定位实战

Linuxbonding链路异常定位实战这是一篇面向中级 Linux 使用者的技术文章&#xff0c;主题聚焦在bonding链路&#xff0c;重点讨论链路聚合、冗余切换和接口状态。在真实生产环境中&#xff0c;bonding链路相关问题往往不会以单一错误形式出现&#xff0c;而是混杂在日志、权限、…...

10分钟掌握Autovisor:智慧树网课自动化学习的完整解决方案

10分钟掌握Autovisor&#xff1a;智慧树网课自动化学习的完整解决方案 【免费下载链接】Autovisor 2025智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor 还在为繁重的智慧树网课任务而烦恼吗&am…...

基于RP2040与CircuitPython的键盘内嵌DOOM游戏启动器DIY指南

1. 项目概述与核心思路几年前&#xff0c;我还在用笨重的全尺寸键盘时&#xff0c;就总琢磨着怎么给这每天摸上八小时的家伙加点“私货”。直到后来玩起了RP2040和CircuitPython&#xff0c;一个念头就冒出来了&#xff1a;能不能把游戏直接“焊”进键盘里&#xff1f;不是那种…...

嵌入式事件驱动框架Curtroller:模块化设计提升开发效率

1. 项目概述与核心价值最近在嵌入式开发社区里&#xff0c;一个名为“Curtroller”的项目引起了我的注意。这个项目由开发者KenWuqianghao在GitHub上开源&#xff0c;名字本身就是一个巧妙的组合——“Curt”&#xff08;可能是“Current”电流的缩写或“Control”控制的变体&a…...

基于Trinket M0与伺服电机的宠物激光护目镜DIY全攻略

1. 项目概述与核心思路给自家毛孩子做个赛博朋克风的万圣节装备&#xff0c;这个想法在我脑子里盘桓很久了。市面上那些宠物装饰要么千篇一律&#xff0c;要么就是简单的布料缝制&#xff0c;总感觉少了点“硬核”的趣味。直到我看到伺服电机和激光二极管这两个小玩意儿&#x…...

苍穹外卖day11

概述项目步入尾声&#xff0c;进行商家数据统计开发分为营业额统计&#xff0c;用户统计&#xff0c;订单统计&#xff0c;销量排名 导航栏的内容为查询选定时间内的的数据统计 右上角的数据导出为下一天的内容 数据导出后形成的图表由Apache的Echarts生成&#xff0c;是开发中…...

大学正在悄悄 “僵尸化”,AI正在毁掉高等教育内核?!

【大学正在悄悄 “僵尸化”&#xff0c;AI正在毁掉高等教育内核】快速阅读&#xff1a;大学正面临一场名为“僵尸化”的危机。当学生和教授都开始将 AI 用于替代思考、替代教学、甚至替代沟通时&#xff0c;高等教育正在从知识的殿堂退化为一种由算法驱动的、高度标准化的凭证工…...