通过 de Casteljau 算法绘制贝塞尔曲线,并计算它的切线,实现 1-7 阶贝塞尔曲线的形成动画。

BezierMaker

项目地址: venshine/BezierMaker
简介:通过 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

License

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值