突然发现有差不多一个月没有更新了,主要原因是随着Clover的开发走上正轨,每天都忙得要死,根本就没时间没心情更新。
所幸的事clover的开发终于到达了可以拿出来见见人的阶段~
Project Name:Clover
The goal of our design is to perform an easy way to simulate origami in computer.
Features -- Basic Operations
Folding Up (贴合对折)
Bending (打开)
Tucking In (向内翻折)
Fold with code (使用Python代码折叠)
Change Paper (更换纸张纹理)
Export Annotated Paper (输出带折线提示的纸张)
Other features:
Data Structure -- Abstract Layer
UI Layer -- Tools And Visuals
关于这部分的更详细设计请参照:
http://www.cnblogs.com/kidshusang/archive/2012/02/07/2342007.html
由于对纸张的分组还存在一些问题,我们现在还不能折叠比较复杂的形状(暂时来说我们的目标是折出千纸鹤,但是在倒数第四步出错了……)。过两天解决了这个问题后要录视频,连上文档和ppt一同交给微软,希望我们的这个作品可以进入复赛吧!
另外我们今天无聊,想测试一下在电脑里面纸张是不是可以无限次对折,因为在现实中纸张是很难对折超过7次的。以下是在电脑中对折6次后的截图:
第7次折叠时,我的电脑整整花了半分钟才有响应。
到第8次程序崩溃了,好吧……
Clover有致命弱点,数据结构太复杂。简而言之,为了完整记录纸张折叠的信息,我们一共使用了一颗二叉树,一片二叉树森林,两个十字链表和一个栈来保存所有信息。并且,这些数据结构之间是相互引用的,构成了一个颇为复杂的网络。复杂的数据结构导致了极差的容错性,我们现在可谓是每前进一步都心惊胆战。然而,由于提交作品的时间紧迫,我们也无暇研究更优的解决方案。
我个人希望可以使用粒子系统来重构一遍Clover的纸张数据结构,我要先一个人慢慢研究研究。