贝塞尔曲线生成工具_卓景京微课堂高级UILSN71贝塞尔曲线

高级UI---LSN-7-1-贝塞尔曲线

b4bf5ce99412e7b55c3befe8a5a1ebf8.png 8d6f73adb221f85585a126444bcb0de0.gif前言

相信很多同学都知道“[贝塞尔曲线]”这个词,我们在很多地方都能经常看到。但是,可能并不是每位同学都清楚地知道,到底什么是“贝塞尔曲线”,又是什么特点让它有这么高的知名度。

     贝塞尔曲线的数学基础是早在 1912 年就广为人知的[伯恩斯坦多项式]。但直到 1959 年,当时就职于雪铁龙的法国数学家 [Paul de Casteljau]才开始对它进行图形化应用的尝试,并提出了一种数值稳定的 [de Casteljau 算法]。然而贝塞尔曲线的得名,却是由于 1962 年另一位就职于雷诺的法国工程师 [Pierre Bézier]的广泛宣传。他使用这种只需要很少的控制点就能够生成复杂平滑曲线的方法,来辅助汽车车体的工业设计。

     正是因为控制简便却具有极强的描述能力,贝塞尔曲线在工业设计领域迅速得到了广泛的应用。不仅如此,在计算机图形学领域,尤其是矢量图形学,贝塞尔曲线也占有重要的地位。今天我们最常见的一些矢量绘图软件,如 Flash、Illustrator、CorelDraw 等,无一例外都提供了绘制贝塞尔曲线的功能。甚至像 Photoshop 这样的位图编辑软件,也把贝塞尔曲线作为仅有的矢量绘制工具(钢笔工具)包含其中。

     贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如PhotoShop等。在Flash4中还没有完整的曲线工具,而在Flash5里面已经提供出贝塞尔曲线工具。

     好吧,我承认上面是一组废话, 来源于百科,那么其实想要真正了解什么是贝塞尔曲线,我们首先来明白他到底是什么。

fa71fc1c6fc0b3a5364125eb9ec849d4.png 贝塞尔曲线详解 fa71fc1c6fc0b3a5364125eb9ec849d4.png

本质概念:一组算法
目的:这组算法用来干什么?
核心:通过这组算法,我门能达到什么效果

那么首先我门来看最基础的一介贝塞尔

6df38fcec0d5bd2e965e72ab9df8a83a.gif

一阶贝塞尔曲线的核心目的其实就只是由两点控制的一条直线

二阶贝塞尔曲线是由一个控制点去控制一条的曲线,而曲线的运动是由两个直线所控制

d5a4c74f67d07c4c4b9627b27cab1f12.gif

那么这里相信有很多同学对于上图比较的懵,接下来我们将上图拆解出来分析

981dce2e98b47220ee77deeec3a83ad2.png

那么此时贝塞尔曲线的计算规则是由A-C   &   B-C进行连线

0cff918f190d8ab3510a67f5234b82ff.png

然后在AC线段和BC线段进行等比定位

106eef522886f1a2d306f55db7aa03a7.png

然后由AC上的点和CB上的点进行连接,在选取这条线段上同AC CB比例相同的点

316c4c81ed4ef9304eb10c315e9ae20e.png

那么这个点就是绘制贝塞尔曲线的点

678273dd2f36d9412928bf1e8a2245a7.png

我们的整条曲线是从AC线段开始绘制,通过Path路径进行绘制,如下图

d5a4c74f67d07c4c4b9627b27cab1f12.gif

那么此时如果你还不明白,或者是你们受不了我的图纸了,那么看下面

4ed35dcc945c5e852e524e5bff695bf5.png

实际线条是从A开始到C结束

3e4023811807a834896ce2edfc34530e.png

绘制过程由A点开始,例:D点和A点成一个百分比

79ecd74964e9651da1083d7212c4055c.png

那么这里BC线段上同样出现BE这两个点,百分比和AD一致

36a68d0020a446bc927b3e72085d53aa.png

在经由这两个点连线

ea3d803909013c3351943eb56b22cf87.png

出现DE这条线,那么在从这条线上面取得同AD,BE的比例的点F

4144134b29bb7b2e66d1127dbf598998.png

那么当前这个点就是当前绘制的这一个点

d5a4c74f67d07c4c4b9627b27cab1f12.gif

我们由A-C开始启动绘制,用PATH记录点进行绘制,从而得到一条曲线,这条曲线就是我们的贝塞尔曲线

PS:哎,如果在这里才懂得同学你们就让我伤心了,果然还是别人画的图比我画的好看。

那么此时其实我们对于之前的在百度百科上看到的贝塞尔算法

3267c8b9af18e57c0aecc9c7b4b37213.png

二阶算法.png

8607a0e0b5d10f4b00c815ea31ba89a4.png

三阶算法.png

这种算法可以直接忽略了,因为看的蛋疼

我们直接通过下图得出

5be292d918c82ac766731f10609cc353.png

想要找到绘制点的话只需要遵守DF:DE= AD:AB= BE:BC,那么此时F点就是绘制点,这样更加直观明了

那么我们还存在三阶贝塞尔,四阶,五阶等等....  可以多阶

13fe305a65b8dc8d70afd1e8ee011e51.gif

三阶贝塞尔

807094a6c6af8b1bc61049172296dd81.gif

四阶贝塞尔

563036cc7d26abe7565decfc30723c06.gif

五阶贝塞尔

那么多阶计算模式和我们之前基本上差不多比如说三阶

800ae5e2dc740f6961a31052621ffd99.png

从上图我们可以看到三阶比二阶多了一条线段,实际上表示的是最终开始点在A结束在B
中途会往C的方法有一定的移动,然后最终到D结束,计算方式有一定的区别,先由AB  BC计算出一条线,在由BC CD 计算出第二条线构建一个二阶的贝塞尔,然后进行进行绘制,最终绘制的点是J 原则:AE:AB= BF:BC= CG:CD= EH:EF= FI:FG= HJ:HI

那么此时如果我们的三阶能够看懂的话那么多阶都是同原理

案例QQ气泡炸裂效果:

d1177e7361dc7f347d58e67c96b651d5.png

e8b1d903f808bd6d547805462e2f8051.png

作者介绍 01e4190bf819224783799ffe8c10a288.png

4473b43480dfb67a68870becf71b6bdc.png

3afde33fe990370671e15dcc9ca6fc77.png

522146a53a47936a8a03289564ced598.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值