Android_贝塞尔曲线

本文详细介绍了Android中如何使用贝塞尔曲线绘制平滑曲线,包括二阶贝塞尔函数的使用方法,以及如何通过贝塞尔曲线消除线条的棱角。同时,文章还探讨了在触摸事件中如何实现动态画线,并提供了画直线和曲线的逻辑分析。最后,展示了如何结合属性动画和贝塞尔函数实现动态水波效果。
摘要由CSDN通过智能技术生成
一、贝塞尔函数

使用贝塞尔函数可以画平滑的曲线,经常使用的是二阶的贝塞尔函数

//二阶贝赛尔  
//参数中(x1,y1)是控制点坐标,(x2,y2)是终点坐标
public void quadTo(float x1, float y1, float x2, float y2)   
//dx1:控制点X坐标,表示相对上一个终点X坐标的位移坐标,可为负值,正值表示相加,负值表示相减;
//dy1:控制点Y坐标,相对上一个终点Y坐标的位移坐标。同样可为负值,正值表示相加,负值表示相减;
//dx2:终点X坐标,同样是一个相对坐标,相对上一个终点X坐标的位移值,可为负值,正值表示相加,负值表示相减;
//dy2:终点Y坐标,同样是一个相对,相对上一个终点Y坐标的位移值。可为负值,正值表示相加,负值表示相减;
public void rQuadTo(float dx1, float dy1, float dx2, float dy2) 

使用二阶的贝塞尔函数 quadTo 方法画如下的曲线
这里写图片描述
这是再简单不过的代码,参照注释可以理解

public class MyBezier extends View {
   
Context mContext;
Path mPath;
Paint mPaint;
public MyBezier(Context context) {
this(context,null);
}

public MyBezier(Context context, AttributeSet attrs) {
    super(context, attrs);
    mContext=context;
    init(mContext);
}
public void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值