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

阅读更多
想对作者说点什么?

博主推荐

换一批

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