Android 贝塞尔曲线原理及其绘制实现

本文详细介绍了贝塞尔曲线的概念、德卡斯特里奥算法原理以及在Android中如何实现贝塞尔曲线的计算与绘制。通过递归与非递归方法,展示了不同阶数贝塞尔曲线的绘制,并提供了相关代码示例。Android动画经常使用贝塞尔曲线作为运动轨迹,文章还提及了Android源码中对二、三阶贝塞尔曲线的优化处理。
摘要由CSDN通过智能技术生成

Android动画,特别是涉及运动轨迹的,很多时候都会使用贝塞尔曲线,下面将系统的介绍下贝塞尔曲线的相关知识。

什么是贝塞尔曲线

贝塞尔曲线于1962年,由法国工程师皮埃尔·贝兹(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由保尔·德·卡斯特里奥于1959年运用德卡斯特里奥算法开发,以稳定数值的方法求出贝塞尔曲线。
下文我们将简要介绍德卡斯特里奥算法,并利用其实现绘制贝塞尔曲线。

贝塞尔曲线演示

一阶曲线,即线性曲线:
一阶曲线
二阶曲线:
二阶曲线
三阶曲线:
三阶曲线
四阶曲线:
四阶曲线
五阶曲线:
五阶曲线
这些运动轨迹使用德卡斯特里奥算法计算出贝塞尔曲线。
一些值得关注的特性:

  • 开始于P0并结束于Pn的曲线,即所谓的端点插值法属性。
  • 曲线是直线的充分必要条件是所有的控制点都位在曲线上。同样的,贝塞尔曲线是直线的充分必要条件是控制点共线。
  • 曲线的起始点(结束点)相切于贝塞尔多边形(下称折线)的第一段(最后一段)
  • 一条曲线可在任意点切割成两条或任意多条子曲线,每一条子曲线仍是贝塞尔曲线。

德卡斯特里奥算法原理

在向量AB上选择一个点C,使得C分向量AB为u:1-u(即|AC|:|AB|=u)。给定点A、B的坐标以及u(u∈[0,1])的值,点C的坐标则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值