一、贝塞尔函数
使用贝塞尔函数可以画平滑的曲线,经常使用的是二阶的贝塞尔函数
//二阶贝赛尔
//参数中(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