谈毕业 (4)

我毕业论文所讨论的两个问题,相同点是:都是对四边形网格连通性进行压缩和解压缩;不同点是:算法不同。所使用的两个算法都有前人曾在三角形网格上成功试验过(源代码未公开),但未有明确、具体的在四边形网格上实现的案例(和论述)。

前一篇网志曾顺带提了一下我毕业论文将要解决的第二个主要问题的内容,也就是用Gotsman算法具体实现对三角形网格连通性的压缩/解压缩,并扩展到对四边形网格连通性的压缩/解压缩。

自上上个星期五领此命令以来,到今天已经10天了,期间虽然有一些杂事干扰,但终于顺利、圆满地编写完成了“用Gotsman算法对三角形网格连通性压缩/解压缩”的代码。相较于上次9天时间完成第一个问题“用Spirale Reversi算法压缩/解压缩四方形网格连通性”的代码来说,这次虽然多花了一天时间,但应该来讲,这次写得也很不错。因为:

1. 上次9天内完成的代码并没有实现对高亏格的处理(额外花了3天时间处理高亏格),这次实现了。

2. 上次写代码的时候没有杂事干扰,全心写程序;这次写代码期间有GA工作,还额外完成了一项编码程序的编写。

3. 上次体力储备好,而这次写代码之前已经连续不休息地奋战了将近一个月,身心俱惫。

相对而言,上次写代码的过程也有出色的地方:上次设计、编写了一些很重要的基础数据类、应用类,包括几何对象描述、文件格式转换、文件处理等方面的类。

上周是长周末(今天是市政日,Civic Day,所以连续放假三天),于是这三天,每天早上8点不到就起床,半夜累了就睡觉,基本上每天除了吃饭、睡觉、散步就是写程序了。每天半夜躺下的时候都还在想着程序的实现方法,只是已经没有力气爬起来继续测试、编写了(而且也不想疲劳作战),也终于有点理解别人所说的“呕血之作”的感受了(当然,我还没到那个境界和地步)。总之,其间在思考、编程方面消耗的力气比较大,尤其是今天下午,已经没有力气继续写四边形的压缩/解压缩程序了,就躺在地毯上休息。

这一整套程序都是用Java编写的。不管过程如何,就结果而言,这套程序我写得相当得意,也拿得出手,虽然Java不是我最拿手的。

下面是最近几天解决第二个问题过程中的一些进展。
  • 2006-08-02 晚上 最简单模型“四面体”(tetrahedron)压缩成功。

  • 2006-08-03 23:02:36 阅读Gotsman论文,使用Touma的程序测试数据,阅读相关文档,最终确认其编码(encoding scheme)实现机制。

  • 2006-08-05 01:05:36 最简单模型“四面体”(tetrahedron)解压缩成功。

  • 2006-08-06 11:19:13 首次处理模型icosahedron(压缩/解压缩)成功。

  • 2006-08-06 13:01:29 对有42个顶点、80个三角形的模型处理(压缩/解压缩)成功。这标志着我的具体实现思路是成熟的,具体实现思路至此定型。

  • 2006-08-07 00:02:37 高亏格模型(类似救生圈的模型)首次压缩成功。

  • 2006-08-07 13:10:07 高亏格模型(类似救生圈的模型)首次解压缩成功,而且是非常成功。

目前全部编程工作,还剩下2个主要方面。一个是“用Gotsman算法实现对四边形网格的压缩/解压缩”,二是“用Huffman算法对压缩后的数据再次编码压缩”。相对而言,前一项最为关键,而后一项则只是一个消耗时间的工作而已。

预计本周内至少可以完成前一项编程任务。当我完成前一项的代码的时候,我就可以长叹一口气,宣告我离毕业已经很近了。

标签:

类别:

添加新评论

友情提醒:您的言论自由在本站会得到充分保证;不过,由于广告留言等猖獗,因此本站的内容过滤系统有可能会暂时屏蔽您新发的留言或评论。不便之处,希望理解。