纪念我的第一次开发(未完成)+周记,开学咯!


早就想写这篇文了,或者说早就想赶紧把它搞定了。

 

早就盘算了,搞定它之后来写篇文,总结一下自己的第一次开发。

 

好多天前我就觉得快要搞定它了,可是这么多天却怎么都搞不定。。从家到学校,再从假期到开学,明天就正式上课了,今天终于搞定了。

 

每次我以为马上就要搞定它的时候,就会出现一个新的问题,提醒我原来这里我没考虑到,原来那里我想得不对。。。还好,终于都解决了,有的是改正了错误,有的是实在想不明白换了方法,有的错误巨白痴,白痴到极点。。。

 

回顾一下这次开发历程:

 

从大年初一开始。

 

上个学期本来写过一些简单的代码,用于在程序里绘制一个立方体之类,所以这次作之前我也考虑了很多,我知道对于这个程序,数据结构是非常重要的。学长跟我说过“数据结构越详细越好”,没错!

 

于是我就把数据结构设计的尽可能的详细。一个魔方分27个小立方体,一个小立方体有8个顶点,同时又有6个面,每个面又有四个顶点,这样,已经足够详细了,而且以后再添加成员变量也比较方便。

 

然后按照上学期的代码的思想首先完成绘制立方体的功能。但是上次的代码基本没有用到面向对象思想,这次我特意注意了,尽量都用面向对象思想来写。(到后来我才发现很多地方还是没有把面向对象思想贯彻到底,很多上层对象负责了下层对象的行为,就像面向过程编程里的main函数一样!也许下次开发就会更加注意了吧)

 

绘制功能很顺利的实现了。魔方的全部信息实际上就存在于各个点的坐标里,我给它们设置的是三维坐标,然后绘制的时候将三维坐标投影到二维平面上。起初我的想法是,旋转的过程中三维坐标不变,而只改变投影的权值,这样也可以完成旋转的效果,我一开始就是这么做的,效果很好。但是后来意识到这样很不利于后来功能的实现,如翻转过程中的涂色等等。于是,就推倒了前面的想法,把代码注释掉(好多啊)。应该在旋转的时候改变三维坐标,然后二维投影方式不变,这样视觉上,也能实现旋转的效果,而且这种方法可以说是最正宗最直接的。

 

然后就是开始进行旋转了,先实现横向旋转。想那个函数想了很久,其实就是个圆函数。实现横向旋转后,很自然就想用相同的思想实现纵向旋转,然后在响应鼠标动作时用两个方向的旋转共同去响应。可是,这样却有问题,因为响应有先后,而做了一个响应后,第二个响应所用到的一些数值已经变化了。无法在一次鼠标动作中进行两次响应。在这个地方卡了很久,后来不得已,还是捡起了前面丢掉的方法,用投影权值来响应纵向旋转。

 

把横向和纵向旋转都做好后,我想,对于局部旋转也完全可以用相同的方法。确实,在作横向局部旋转的时候,确实用原来的方法就能做到。可是做到纵向局部旋转的时候却总有错误,而且那错误很具迷惑性。想了好久好久才发现问题所在,其实问题真的很明显,可是想不到就是想不到。。。想到了还没完,解决方法也不是很好找,又想了很久。。。等找到了方法回过头来想,又会发现其实不难。好像一直都是这样,遇到问题的时候很懵,解决问题再回头看就觉得其实不难了,是理所当然的了。

 

呃,突然不想写了。。。

 

to be continued...

 

-------------------------周记分割线---------------------------

明天就正式上课了,还好,这个学期课不算多。魔方终于算是做好了,终于了了一个事。我发现我做什么都喜欢一口气做完,做完之前脑子里都是它,想做别的都难。单线程。。。这不是优点啊。。。本来做不动的那几天想学习学习来着,可是学不进去啊。还好,终于做好了,终于可以学习了。要学的东西还有很多啊。做了个这个,虽然增进了点自信,但更多的是意识到了自己的差距,差距还很大,而且好像还在继续拉大。行啊,这些都是必须经历的。有时候觉得这次作魔方浪费了时间,其实理智的想想,这还真的是必要的,以前什么都没做过,什么问题都没碰到过,这次做这个,收获真的很大。那些错误啊,异常啊以前都没见过,原来编译通过了,还是会有错误啊,哈哈,以前总听说运行时异常,可是光听是体会不到的啊,现在知道了,呵呵。总之,虽然感觉上没学到什么,但是我知道,有很多收获都是隐形的,而且是必经的,也就是说这次开发是绝对值得的。当然,现在也更加意识到了自己的差距,目标还很远,任务还很重,形势还是很严峻。

 

这下好了,搞定了它,我可以接着学咯!

 

再次上路,这下更清楚了差距,也就更清楚了任务,加油加油!一定要加油。

 

发现自己现在真的很喜欢编程。今天早上,记得很清楚,作梦梦到编程了,好像是出现了一个运行时异常,呵呵。还有,编累了,本打算看电影休息一下,结果发现电影那么没意思。昨晚本来打算看黑客帝国休息一下呢。结果看电影的时候还想着魔方,呵呵,干脆关了电影,接着编:)

 

加油!chris!

 

接下来学什么?

 

MFC:先把孙鑫老师的视频都看完,然后看那本《Windows程序设计》,然后是C#入门,还有《Windows核心编程》,还有算法,等等等等,对了还有《计算机图形学》。

 

说了这么多,不知道要看到什么时候才能都看完。。。先写着,慢慢来:)

 

明天就上课了,要好好听课,这个学期很关键,不能落课。要一直跟着!这样期末压力才小,这样才能安心的学习编程!so,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值