实现弹性组件效果(贝塞尔曲线&&阻尼函数)

本文介绍了如何使用贝塞尔曲线画出四分之一圆,并通过改变顶点位置形成椭圆。接着,通过阻尼函数实现弹性动画效果,详细探讨了阻尼函数的应用和参数调整,以达到果冻般的弹性动效。在实现过程中,利用Android的onDraw方法和自定义动画,实现了组件的动态更新。
摘要由CSDN通过智能技术生成

1.贝塞尔曲线

贝塞尔曲线是一种画线的方法,主要是通过四个点确定一条线,首尾两个端点,中间两个点构成一条虚拟的标准线,曲线就根据这条线相切以及两个端点确定。

首先看看如何用贝塞尔曲线画出四分之一个圆:

请先参考这篇博客:http://blog.csdn.net/nibiewuxuanze/article/details/48103059#comments

总结起来,除了首尾两个端点外,中间两个点的位置是由端点和偏移量共同决定的。

如图,B的位置是A向左一个偏移量,C的位置是D向上一个偏移量。而且根据计算这个偏移量是直径/3.6。


2.画一个圆:

为了以后的使用方便,这里用上下左右四个顶点确定一个圆。

重写组件的onDraw方法:

Path path = new Path();
        path.moveTo(xA,yA);
        path.cubicTo(xA+offset,yA,xB,yB-offset,xB,yB);
        path.cubicTo(xB,yB+offset,xC+offset,yC,xC,yC);
        path.cubicTo(xC-offset,yC,0,yD+offset,xD,yD);
        path.cubicTo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值