贝塞尔曲线生成动画

刚刚开始接触java swing,做了一个小小的java界面程序展示贝塞尔曲线的生成过程,同时作为自己的技术练习。


贝塞尔曲线介绍


简单来说,贝塞尔曲线就是一条经过平滑操作的折线,这条折线的顶点叫做“控制点”,控制着贝塞尔曲线的走向。

由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。


生成方式

1.取n个顶点A1,A2,A3作为控制点(这里取3)


2.给定变量t,0≤t≤1,t随时间增加而增加

3.对于每一个t,分别在每条边上取一点Pn,使得|Pn An| / |An An+1|=t


4.对于Pn连成的折线,分别在每条边上取一点Tn,使得|Tn Pn| / |Pn Pn+1|=t

5.如此循环,直到最后剩下一个点(图中的T1)


6.Tn的轨迹即为贝塞尔曲线



演示程序下载


BezierCurve.jar(双击即可运行)

https://pan.baidu.com/s/11gIOp7iKtogINIDlvujE0g


源码

由于时间比较仓促,代码质量很低(为了制作速度,算法弄得很愚蠢),所以暂时先不放上来(反正这个也很容易自己实现,自己做一个呗)

猜你喜欢

转载自blog.csdn.net/jtyj55454/article/details/80963661