毕业设计笔记

蚊子前端博客
发布于 2013-03-16 07:00
毕业设计做到现在已经到了0.4版本了,功能在一步步的完善中

毕业设计做到现在已经到了 0.4 版本了,功能在一步步的完善中。

0.1 版本时,只能画出一个图,还得需要用按钮来。关键是,实现的思想跟现在有些差别。当时讨论的是用贝塞尔曲线,最多也就三次,因此我就每 4 个点一组画三次贝塞尔曲线,可是这样的话,最后总会剩下几个点组不成三次贝塞尔曲线,因此还得用到一次和二次。

下面是就是 0.1 版本画出的图形

毕业设计笔记-蚊子的前端博客

讨论之后说这样的图形不行,这不是拟合曲线。当时我就郁闷了,按照我的程序,所有的红线都是拟合出来的,直线也是拟合的一次贝塞尔曲线。人家说不行那就接着找别的法子吧。无意间看见了一篇文章:http://blog.csdn.net/microchenhong/article/details/6316332 。这篇文章给了我很大的启发,对啊,为什么不穿过已知点呢,这样整体都是平滑的曲线了,也不用考虑最后剩余的点数,于是就出了 0.2 版本。

在 0.2 版本中,实现的思路是这位作者的思路;经过自己的改进后,能够简要的满足了自己的需求。这个版本中,可以任意的点点,坐标任意、个数任意,当想让图形封闭时,只需要把最后的‘点’点在第一个点的范围内,封闭图形就构成了;这时候程序就开始计算三次贝塞尔曲线,并画在画布上。而且已经可以在画布上画出多个封闭图形了,不再需要按钮来控制图形是否要封闭,这是这个版本最大的进步。

毕业设计笔记-蚊子的前端博客

在 0.3 版本中,实现了画起点和终点。这个时候的代码还没有重构,还是非常的乱,一堆东西都写在一块了,比如判定哪个点是第一个点,什么时候图形要封闭了,等等。而且画起点和终点是有两个问题是需要考虑的:(1)如何判定当前要画的是起点和终点,而不是拟合曲线的点;(2)如何判定只能在画布上画一个起点和终点。这两个问题在 0.3 版本中并没有很好的实现,我是用全局变量进行控制的。

毕业设计笔记-蚊子的前端博客

现在已经发展到 0.4 版本中了,在 0.3 版本中的两个问题这里还没有很好的解决,还有就是 0.4 版本还没有写完,现在已经在 0.3 的基础上了实现了能够存储拟合曲线上的点,只是不很准确,因为存储的点是用函数计算出来的,而曲线是用库函数画出来的,多少有点微小的误差。

先努力完善一下 0.4 版本。

标签:
阅读(341) 评论(0)

公众号:

qrcode

微信公众号:前端小茶馆