BezierMaker
项目地址:
venshine/BezierMaker
![收藏,GitHub 同步 Star](https://i-blog.csdnimg.cn/blog_migrate/7d0234f6040bfebfea82f8d6092495f1.png)
简介:通过 de Casteljau 算法绘制贝塞尔曲线,并计算它的切线,实现 1-7 阶贝塞尔曲线的形成动画。
通过 de Casteljau 算法绘制贝塞尔曲线,并计算它的切线,实现 1-7 阶贝塞尔曲线的形成动画。 德卡斯特里奥算法可以计算出 Bezier 曲线上的一个点,进而绘制出 Bezier 曲线。想深入了解德卡斯特里奥算法的同学可以参考我翻译的一篇文章《德卡斯特里奥算法——找到 Bezier 曲线上的一个点》。
Features
- 支持增加和删除控制点
- 支持 1 阶到 7 阶贝塞尔曲线,限于屏幕大小,理论上可以支持 N 阶贝塞尔曲线
- 支持自由移动控制点
- 支持显示贝塞尔曲线形成过程的切线
- 支持循环显示贝塞尔曲线的形成动画
- 支持贝塞尔曲线显示速率
- 支持显示控制点坐标
- 支持设置贝塞尔曲线阶数
ScreenShot
Demo
Java:
public class MainActivity extends Activity {
BezierView mBezierView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main)
mBezierView = (BezierView) findViewById(R.id.bezier);
}
public void start(View view) {
mBezierView.start();
}
public void stop(View view) {
mBezierView.stop();
}
public void add(View view) {
mBezierView.addPoint();
}
public void del(View view) {
mBezierView.delPoint();
}
}
Methods:
method 方法 | description 描述 |
---|---|
void start() | 开始贝塞尔曲线(required) |
void stop() | 停止贝塞尔曲线(optional) |
boolean addPoint() | 增加控制点(optional) |
boolean delPoint() | 删除控制点(optional) |
int getOrder() | 获取贝塞尔曲线阶数(optional) |
void setRate(int rate) | 设置移动速率(optional) |
void setTangent(boolean tangent) | 设置是否显示切线(optional) |
void setLoop(boolean loop) | 设置是否循环(optional) |
void setOrder(int order) | 设置贝塞尔曲线阶数(optional) |
About
- Android 绘制 N 阶 Bezier 曲线
- Email:venshine.cn@gmail.com