通过 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

阅读更多
文章标签: 动画
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭