• 毕业设计笔记


      毕业设计做到现在已经到了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版本。

  • 相关阅读:
    [MFC]CImageList仅显示黑色的问题
    [hessdroid]Android下使用Hessian与Java服务端通讯的传值测试
    [MFC]Sqlite问题小记
    [MFC] FTP 遍历服务器目录文件卡住的问题
    ExtJs 备忘录(9)—— Ext常用属性、方法小结 [系列完]
    [MFC]托盘图标删除后不自动消失的问题
    RIL接听电话没有声音的问题 [ RIL_Answer | RIL_SetAudioDevices ]
    [Qt]Qt Creator汉化方法
    [C++]遍历可变参数 (va_list)
    [杀毒]删除U盘autorun.inf
  • 原文地址:https://www.cnblogs.com/xumengxuan/p/2962587.html
Copyright © 2020-2023  润新知