刚刚开始接触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
源码
由于时间比较仓促,代码质量很低(为了制作速度,算法弄得很愚蠢),所以暂时先不放上来(反正这个也很容易自己实现,自己做一个呗)