三个球的旋转的动画

solid works动画制作 滚动钢珠 solid works动画制作 滚动钢珠 注意点: 圆顶只能一个面一个面的添加 绘制第一个零件 前世基准面绘制草图: 凸台拉伸—两侧对称–60 插入基准面 以前视基准面为基准新建基准面—等距8 在新建基准面绘制草图 扫描—圆形轮廓—直径3.5 右视基准面绘制草图 (显示上一步草图—圆为了添加穿透关系) 局步放大 扫描—圆形轮廓—直径3 圆周阵列—数量4----边线选择蓝色圆圈 继续在基准面1上绘制草图 扫面—圆形轮廓—直径3.5 继续在基准面1上绘制草图,绘制圆弧 (显示上一步草图— 阅读详情

创建三个半径大小,颜色大小一样的圆。这里我们用到了layer的cornerRadius属性,在正方形中,我们只要设置cornerRadius的值等于height/2,就能轻易的画出一个圆形,代码如下:

UIView *ball_1 = [[UIView alloc] initWithFrame:CGRectMake(centerPoint.x - BALL_RADIUS, centerPoint.y, BALL_RADIUS, BALL_RADIUS)];
ball_1.layer.cornerRadius = BALL_RADIUS / 2; // 成为圆形
ball_1.backgroundColor = self.ballColor;
我们根据圆的x值不同,创建三个并排放着,大小、形状一致的圆形,接下来我们来分析一下三个圆各自的x值

QQ20151008-0@2x.png
CGFloat centerPointY = HEIGHT / 2 - BALL_RADIUS * 0.5;
CGFloat centerPointX = WIDTH / 2;
CGPoint centerPoint = CGPointMake(centerPointX, centerPointY);
UIView *ball_1 = [[UIView alloc] initWithFrame:CGRectMake(centerPoint.x - BALL_RADIUS, centerPoint.y, BALL_RADIUS, BALL_RADIUS)];
ball_1.layer.cornerRadius = BALL_RADIUS / 2; // 成为圆形
ball_1.backgroundColor = self.ballColor;
[self addSubview:ball_1];
self.ball_1 = ball_1;

UIView ball_2 = [[UIView alloc] initWithFrame:CGRectMake(centerPoint.x - BALL_RADIUS 0.5, centerPoint.y, BALL_RADIUS, BALL_RADIUS)];
ball_2.layer.cornerRadius = BALL_RADIUS / 2; // 成为圆形
ball_2.backgroundColor = self.ballColor;
[self addSubview:ball_2];
self.ball_2 = ball_2;

UIView ball_3 = [[UIView alloc] initWithFrame:CGRectMake(centerPoint.x + BALL_RADIUS 0.5, centerPoint.y, BALL_RADIUS, BALL_RADIUS)];
ball_3.layer.cornerRadius = BALL_RADIUS / 2; // 成为圆形
ball_3.backgroundColor = self.ballColor;
[self addSubview:ball_3];
self.ball_3 = ball_3;
3.在git图中,我们可以看到圆是绕着一定的半径,做着一个旋转的运动,在这里我们用贝塞尔曲线创作圆,在这里我们要从180度到360度,和0度到180画两端圆弧,组成一个圆形,让球1跟着这个曲线做位移运动。

QQ20151008-1@2x.png
// 2.1 第一个圆的曲线
UIBezierPath *path_ball_1 = [UIBezierPath bezierPath];
[path_ball_1 moveToPoint:centerBall_1];

[path_ball_1 addArcWithCenter:centerPoint radius:BALL_RADIUS startAngle:M_PI endAngle:2*M_PI clockwise:NO];
UIBezierPath *path_ball_1_1 = [UIBezierPath bezierPath];
[path_ball_1_1 addArcWithCenter:centerPoint radius:BALL_RADIUS startAngle:0 endAngle:M_PI clockwise:NO];
[path_ball_1 appendPath:path_ball_1_1]; // 把两段圆弧组合起来

我们用核心动画,让球1绕着轨迹运动:

// 2.2 第一个圆的动画
CAKeyframeAnimation *animation_ball_1=[CAKeyframeAnimation animationWithKeyPath:@"position"];
animation_ball_1.path = path_ball_1.CGPath;
animation_ball_1.removedOnCompletion = NO;
animation_ball_1.fillMode = kCAFillModeForwards;
animation_ball_1.calculationMode = kCAAnimationCubic;
animation_ball_1.repeatCount = 1;
animation_ball_1.duration = 1.4;
animation_ball_1.delegate = self;
animation_ball_1.autoreverses = NO;
animation_ball_1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.ball_1.layer addAnimation:animation_ball_1 forKey:@"animation"];

这样我们就完成了球1的动画,我们按着这个步骤完成球3的动画

4.球3首先是从0度到180度、180度到360度两段弧构成,在这里我们要注意一个点是在创建核心动画的时候,我们不用再成为球3的核心动画的代理,因为我们在球1中已经成为了动画的代理,这里不做代理,防止重复出现动画代理事件的触发

QQ20151008-2@2x.png
// 2.3 第3个圆的曲线
UIBezierPath *path_ball_3 = [UIBezierPath bezierPath];
[path_ball_3 moveToPoint:centerBall_2];
[path_ball_3 addArcWithCenter:centerPoint radius:BALL_RADIUS startAngle:0 endAngle:M_PI clockwise:NO];
UIBezierPath *path_ball_3_1 = [UIBezierPath bezierPath];
[path_ball_3_1 addArcWithCenter:centerPoint radius:BALL_RADIUS startAngle:M_PI endAngle:M_PI*2 clockwise:NO];
[path_ball_3 appendPath:path_ball_3_1];

// 2.4 第3个圆的动画
CAKeyframeAnimation *animation_ball_3 = [CAKeyframeAnimation animationWithKeyPath:@"position"];
animation_ball_3.path = path_ball_3.CGPath;
animation_ball_3.removedOnCompletion = NO;
animation_ball_3.fillMode = kCAFillModeForwards;
animation_ball_3.calculationMode = kCAAnimationCubic;
animation_ball_3.repeatCount = 1;
animation_ball_3.duration = 1.4;
animation_ball_3.autoreverses = NO;
animation_ball_3.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

[self.ball_3.layer addAnimation:animation_ball_3 forKey:@"rotation"];

3

Flutter 旋转动画 — RotationTransition RotationTransition 继承于AnimatedWidget,是一个提供旋转功能的Widget。本文讲解实现线性、非线性旋转动画,手动控制动画旋转以及动画延时重复播放。 阅读详情

相关推荐

全网最全!!Qt实现图片旋转及图片旋转动画的几种方式

【代码】全网最全!!Qt实现图片旋转及图片旋转动画的几种方式。

weixin_46432495的博客 9085

【JavaScript】实现三个小球围着椭圆旋转的加载动画

好久没有写过原生JS了,突然没事做,写了一个跟着鼠标走的加载小动画,最终效果如下图: 这个效果实现起来非常简单,大概思路是:先用 CSS3 的 border-radius 属性将三个 div 的样式设置为圆形,然后定义一个椭圆路径,最后用定时器或帧函数使得三个 div 绕着椭圆路径旋转,同时椭圆路径的中点始终跟随者鼠标移动。 有了思路就可以开始写代码了,先把 h

林洪炳的日常技术积累 1万+

HTML5+CSS3小实例:三色小球旋转叠加loading动画

实例:三色小球旋转叠加loading动画。技术栈:HTML+CSS。

艾恩小灰灰的博客 417

Cocos Creator下JavaScript模拟砸金蛋3d旋转效果,附代码

​获取代码 关注微信公众号,发送【砸蛋】获取代码 效果预览 使用说明 点击add,添加蛋到盘子上,蛋的数量后台可配置; 点击move,让蛋在盘子上转动起来; 点击stop,让蛋停止转动。 蛋旋转效果实现 椭圆定义 平面内与两定点、的距离的和等于常数()的动点P的轨迹叫做椭圆。 即: 其中两定点、叫做椭圆的焦点,两焦点的距离叫做椭圆的焦...

一枚小工 1286

三个球体的相互绕转flash

相互绕转的动画,运动的相对性!这个动画体现了日地月三个天体的相互运动

染色体外环状DNA:肿瘤研究新方向

染色体外环状DNA(ecDNA)是癌症中活化原癌基因扩增的主要方式。区别于常染色体,这类生物大分子主要以环状的形式存在于细胞核当中,长度分布在103-106数量级,无中心粒。ecDNA序列中包含一个或者多个基因与调控元件,结构开放,转录活性强,相比于在棒状染色体结构基因,ecDNA的生物功能活性更强。癌症中,成环的基因区域拷贝数往往增高,而超过一半的高拷贝数事件是ecDNA驱动生成。...

blackjimmy的博客 766

贝塞尔曲线

以下转的 贝塞尔曲线,可以通过三个点,来确定一条平滑的曲线。在计算机图形学应该有讲。是图形开发中的重要工具。 实现的是一个图形做圆周运动。不过不是简单的关键帧动画那样,是计算出了很多点,当然还是用的关键帧动画,即使用CAKeyframeAnimation。有了贝塞尔曲线的支持,可以赋值给CAKeyframeAnimation 贝塞尔曲线的Path引用。 用贝塞尔曲线画圆,

C_singleboy的专栏 3253

BrepNet实战:5分钟搞定三维CAD模型的加工特征识别(附Python代码)

本文详细介绍了BrepNet在三维CAD模型加工特征识别中的实战应用,通过Python代码演示了从环境搭建到模型训练的全流程。BrepNet基于边界表示(BRep)的深度学习框架,能够高效识别加工特征,显著提升工业设计和智能制造领域的效率。文章还提供了性能优化和部署建议,帮助开发者快速实现AI驱动的几何特征识别。

weixin_29044713的博客 509

canvas 多个小球绕椭圆轨道转动

这里写自定义目录标题如何插入一段漂亮的代码片 如何插入一段漂亮的代码片 // An highlighted block <style> *{ padding:0; margin:0; } body,html{ width:100%; background-color:#000; } canvas{ margin:0 auto; } </style> <body> <canvas id="canvas" width="1000" height

lucky_zouzou的博客 1299

Python爬虫实战:利用Scrapy+Playwright高效爬取TED演讲数据

在当今信息爆炸的时代,TED演讲作为全球知名的思想传播平台,汇聚了各领域顶尖人才的精彩分享。对于数据分析师、研究人员或内容创作者来说,获取TED演讲的完整数据集具有重要价值。本文将详细介绍如何使用Python中最先进的爬虫技术组合——Scrapy框架配合Playwright浏览器自动化工具,高效爬取TED演讲的完整数据。传统爬虫技术在处理现代动态网页时面临诸多挑战,而本文将展示如何利用最新工具解决这些问题。

2201_76125261的博客 205

华为OD机试双机位C卷:流量波峰 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 流量波峰,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 流量波峰。

qq_45776114的博客 2446

android三个球动画,android三个小球互换位置loading动画

这是需要实现的效果,第一个球跟第二个球互换位置,第二个球跟第三个球互换位置,等,这里提供一个思路,先把代码全部贴上来import com.example.loadingtest.R;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation....

weixin_30270475的博客 492

【硬刚Hive】HIVE基础(20):Hive函数(9) over 窗口函数

欢迎关注博客主页:微信搜:import_bigdata,大数据领域硬核原创作者_王知无(import_bigdata)_优快云博客 欢迎点赞、收藏、留言 ,欢迎留言交流!本文由【王知无】原创,首发于 优快云博客!本文首发优快云论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的Hive部分补充。 hive窗口函数语法 在前言中我们已经说了avg()、sum()、max()、min()是分析函数,而over()才是窗..

微信搜:import_bigdata,大数据领域硬核原创作者 888

【html+css(css3)实操】loading动画(代码+注释)

【html+css(css3)实操】loading动画(代码+注释)

weixin_51817440的博客 296

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1311

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

iOS中旋转加载动画的实现

1.前言 近日一直在看KITTEN写的《A GUIDE TO IOS ANIMATION》,此乃iOS动画开发的圣经,简直手不释卷。其中有一个动画是加载动画,因为文中没有给出实现的解析,我在这里解析一下动画的实现原理,和自己加入一些新的东西。Github地址 git1.gif 我们可以看到,图中主要是3个球在做交换,其中中间的球基本保持位置不变,其他两个球绕着一定的轨迹做旋转位移动画

qinxianjun163的博客 1478

相位编码脉冲压缩信号的理论研究与 Matlab 实现

通过实际的代码示例,我们展示了如何生成信号、进行相位编码、传输信号、相位解码和脉冲压缩的步骤。相位编码脉冲压缩信号是通过在发射端对信号进行相位编码,并在接收端对信号进行相位解码来实现的。其主要原理是在发射端将信号的频率进行调制,使得信号具有宽带特性,然后在接收端通过匹配滤波器对信号进行解调和压缩,从而提高信号的分辨率和抗干扰能力。相位编码脉冲压缩信号是一种在信号处理中常用的技术,用于提高信号的分辨率和抗干扰能力。可以使用 Matlab 中的信号生成函数生成一个宽带脉冲信号,例如矩形脉冲信号或高斯脉冲信号。

CyberWizarDD的博客 904

compose-pokedex动画效果实现:旋转精灵球与页面过渡的5个技巧

compose-pokedex是基于Jetpack Compose构建的宝可梦图鉴应用,通过Jetpack Compose强大的动画API实现了流畅的界面交互效果。本文将分享5个实用技巧,帮助开发者掌握旋转精灵球动画和页面过渡效果的实现方法,提升应用的视觉吸引力和用户体验。 ## 1. 使用无限旋转动画实现精灵球加载效果 在应用加载状态时,一个旋转的精灵球动画能够有效缓解用户等待焦虑。comp

gitblog_00317的博客 784

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android 旋转动画设置旋转中心点_blender | 01 球球旋转动画

‍‍球球旋转动画 Demo‍‍‍‍预准备安装 blender - 设置中文编辑界面快捷键“Alt + Ctr +U”调设置键勾选插件 Add Mesh: A.N.T. Landscape 和 Add Mesh: Archimesh球、平面和聚光Shift + A 新建经纬球材质面板选择基础色和糙度(参数:0)Shift+ A 新建平面拉大平面,Ctr+3 细分平面、糙度优化删除Def...

weixin_32875295的博客 1565

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

实现多个球沿椭圆轨迹进行旋转动画

X轴方向动画持续20秒,动画开始直接进入播放5秒时的状态,此时应该在向右运动过程中中间的位置。4、给其他球添加动画样式,通过设置动画的延时时间(正值为延迟播放,负值表示直接进入播放动画n秒之后的状态),可改变球的初始位置。2、想要球动起来,并且沿着椭圆轨迹,要用到运动的合成,同时添加X轴方向和Y轴方向上的动画,同时在过程中改变球的大小和透明度。在旋转的过程中,球的大小,透明度在不断地发生变化,转到前端的时候不透明且最大,转到后面的时候透明度很高且最小。给球绑定鼠标移入事件,鼠标移上,所有球动画停止。

qq_48795482的博客 532

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android 安卓动画 属性动画 - 旋转动画

Toast.makeText(this, “我是属性动画”, Toast.LENGTH_SHORT).show();将图片,从初始0度,顺时针旋转360度,再逆时针旋转360度到0度。属性动画用到的是:ObjectAnimator。android:text=“点击演示动画”android:text=“《魁拔》”将图片,从初始值0度,顺时针转360度。将图片旋转360度,只有一次效果。第一个参数,要实现动画的控件id。

2401_89173761的博客 1781
上一篇: 文章标题
下一篇: 项目第二天
Micheader
博客等级 码龄11年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值