今天终于把论文敲完了,一路走来,颇多感想。遂写下以下诸多文字,以飨读者。
在说这个项目之前,先简单介绍一下我的经历。我叫王财勇,家是山西的,2009年至2013年在新疆大学就读数学专业,也许有人会问,为什么你要去新疆读书?其实答案很简单,我高考分不高,所以未能进入理想院校就读,因此调剂到新大数学系。开始我很失望,本来就调剂,还读了数学。后来我就不怎么后悔了。尽管新大也是211高校,在新疆也是第一高校,但在内地排名仍然在80左右。但是就是这个排名不高的学校,她的数学专业却令全国的同行不敢小觑。我们新大的图论和生物数学领域在业内是很有名的,先后走出了很多知名教授,如厦门大学教授张福基,曾担任我们的系主任、南开大学组合数学中心副主任李学良教授、美国贝尔实验室和离散数学与理论计算机科学研究中心博士后研究人员永学荣等,还有一大批的教授在这里仍然讲学,更庆幸的我读书那年,新大正好成立了第一届全国理科基础与人才培养基地班。这个班至今全国只有18个院校有,而且可以办这个班的学校基本都是985,新大能够办这种班,也说明了新大的数学真是很强。我在这样一个很好的环境下开始了我的数学本科学习。
本科学习的生涯是充实的,我的成绩也很好,最终大四毕业,我特意打了一下我的成绩单,四年的学分绩点是3.81,名列榜首,也因此我成功保送到厦门大学攻读研究生。
在厦大,我的专业是计算数学,导师是曾晓明老师,研究方向是计算机辅助几何设计与计算机图形学。由于我在本科学的是应用数学,比较理论化,研究生转到了计算数学,这就意味着我即将接触到更多的编程。遗憾的是我之前仅有Matlab与C语言的基础,而且应该说很浅,现在我更多的是要使用C++。怎么办呢?没办法,只有硬着头皮去学C++了。我找了一本比较简单的C++入门书,主要学了一些关于类、继承、多态性等方面的知识,这时老师就让我旁听一门叫《数字几何处理》的课,那门课让我收益良多,我开始迈进了计算机图形学的大门。那门课让我知道了OpenGL,Openmesh,也让我看到了图形学的绚丽与精彩。那门课有是三个大作业,是用C++编写的,我们要求补充里面的一些程序,我是个C++新手,第一个程序没做完,也挺着急的,就找别人的看了看,也开始自己去琢磨,终于后面的两个程序我搞出了。那时感觉挺有成就感,后来我又学了《计算机图形学教程》、《计算几何》等专业课,理论基本建立了一些。
为了继续加强C++的学习,我又利用课余时间与暑假,先后补充了数据结构、算法、C++ STL、Qt、最优化理论等方面的知识,尤其是Qt的学习让我终于见识了计算机的神奇,我终于可以自己编写一个小的软件,设计一个界面,这些让我倍感兴奋。C++ STL是我经常要使用的标准库,非常好用,里面提供了vector/list/deque/string等数据结构和一些常用的算法如sort等,它的学习为我后来的程序设计带来了很多方便。于是在这些基本的知识补充地差不多的时候,我开始正式开展项目了。
时间是2014年9月5日,我开始了,这个一直持续到2015年4月15日。期间我得到了老师和师兄的帮助,他们帮助我指明行动的方向,并且介绍了许多经典的库。库的威力在C++中是相当强大的,我在项目的实施中,先后调用了Graphite用来计算曲面的曲率、ANN中的kd tree用来求解近似最近邻、Openmesh用来读入曲面与处理三角网格、CGAL用来求解三角形与四边形的求交以及三角形与线段的求交、Qt用来设计界面、libQGLViewer用来处理三维模型的显示和绘制等,这么多的库都是我在做项目的过程中学习的,不是可以学的,只是因为有需要,所以才学,这也教了我一种学习的方法就是边实践边学习,这样的效率最高。就这样,一路上磕磕绊绊,我都不知道改了多少次,有多少次是晚上11点半回去的,这个项目的实践让我看到了研发的辛苦,当然了也带给我许多的知识和充实。
今天我正式把论文改完了,感受到了一种轻松与兴奋,虽然文章的结果与最初的想法不一定完全契合,但结果还是很好的,最后只想对长期以来给我指导的导师和师兄说声谢谢,他们的帮助让我感到了团队的力量,的确,在现今这个时代,没有什么事是一个人可以搞定的,大家在一起讨论、研究甚至争吵,这些都会让我们的工作变得更加美好。
结尾附上该项目的主页链接:https://github.com/xiamenwcy/b-spline-knots-setting,敬请指教。

This is Me!——回顾第一个项目的前前后后相关推荐

  1. 39期1组,第一个项目感受---------文字与回忆

    今天在整理文件时发现,在 39 期第一个项目结束的项目感受,打开看看,发现以前好像没看过.也许在你的电脑早已把它删除,但还留在我的小黑上.今天 我把它全部发布,或许你某天看到会莞尔一笑,下面是你们的项 ...

  2. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  3. 我在兰亭这三年之第一个项目

    [前言] 在兰亭这段时间里,做了很多项目,前前后后加起来有10几个大版本和项目及很多的hotfix,当然每一个项目中都有收获,都让我得到一点点的积累和沉淀.但是让我记忆犹新的还是第一个项目. [正文] ...

  4. Android实例开发中如何创建第一个项目(android studio)

    当我们配置好android环境后,如何创建第一个项目,每一项代表了什么意思,这里以Android studio 为例,其他软件如eclipse等是类似的操作 当我们安装好AS后 这里我们选择第一项 其 ...

  5. [Asp.net MVC]Asp.net MVC5系列——第一个项目

    目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...

  6. [31期] 第一个项目结束之际--俺很高调但很真诚地感谢一个人--涛爷

    声明:借老大的号号发这个帖子 第一个项目明天就交差了.也许很快,涛爷就要离开我们,我发自由衷地感谢他. 原因有两个: 1,我接触编程,尤其是做出个自我感觉良好的项目,启蒙老师是:涛爷!这人的一生嘛.最 ...

  7. [30期] 第一个项目

    我的第一个项目我的第一个项目做的是商城,由于没有项目经验,且自己的美工技术又有限,所以这个项目做的有些粗糙.也正是因为自己没有做项目的经验,所以在开始之前我首先参考29期阿虎的意见,来自己制定出自己的 ...

  8. flutter图标按钮_Flutter开发第一个项目android studio 开发工具的使用说明

    Flutter开发第一个项目android studio 开发工具的使用说明 做个自我介绍 自我介绍还是有必要介绍一下的,毕竟这是网络里,你看不到我,我看不到你,只能通过文字来传递信息,本人做技术8年 ...

  9. vue-cli创建第一个项目(用git bash解决上下键移动选择问题)

    vue-cli创建第一个项目(用git bash解决上下键移动选择问题) 参考文章: (1)vue-cli创建第一个项目(用git bash解决上下键移动选择问题) (2)https://www.cn ...

最新文章

  1. Linux常用测试命令
  2. php与Git下基于webhook的自动化部署
  3. RecycleView 与 Elevation
  4. 1001. A+B Format (20)---------------PAT开始
  5. SQL Server 自动化运维系列
  6. 博达路由器如何配置互联网ip_如何成为技术大牛第七步——路由器下接交换机单臂路由配置方法...
  7. 爱的回忆(散文诗 长篇连载)
  8. docker.[7] 数据卷容器
  9. strcmp函数用法
  10. 英语口语练习二十二之I'd strongly recommend that... (我强烈建议……)用法
  11. 【C语言经典100题】乒乓球队的比赛
  12. 数据库实验(数据库安全管理)
  13. 【操作系统实验】模拟单处理器系统的进程调度
  14. TADF的发展史前景概念,热活化延迟荧光(TADF)材料的未来发展
  15. Pytorch项目(1)| 预测泰坦尼克号船上的生存乘客
  16. golang 腾讯AI 机器翻译调用 实现中英互译服务
  17. Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
  18. cups共享linux打印机_利用CUPS为linux安装打印服务并局域网共享
  19. JAVA网站视频播放不了_java视频播放网站小结
  20. Spring入门——AOP(面向切面,切什么面?)

热门文章

  1. :host :host-context ::ng-deep详解
  2. JavaScript-内存空间
  3. js(Dom+Bom)第四天(1)
  4. (Review cs231n) Backpropagation and Neural Network
  5. Flash基本工具练习
  6. 移动开发:iphone开发之触摸事件详解
  7. C#面向对象设计模式第九讲:Composite 组合模式(结构型模式)
  8. SpringBoot之静态资源访问
  9. 测试开发面试准备之Selenium 工作原理
  10. 【教程】如何在标签打印工具TFORMer Designer中自定义布局?