用C语言设计光线成像程序——计算机达人成长之路(26)

7C语言光线成像(一)诡异的笑

世界上的很多道理,没有亲身经历过,是不会有太大感触的。比如“少壮不努力,老大徒伤悲”,这句话从小时就耳熟能详,可是从小真正能理解的又有几人?大多数少壮之人都是随波逐流,直到进入大学才后悔高中没有头悬梁锥刺股。而后继续浑浑噩噩,享受人生中最美好的时光,直到毕业又开始后悔四年虚度。也许只有经历几次大起大落才能真正理解“莫等闲,白了少年头,空悲切”的含义。

哥哥向木鸿飞灌输计算机学习的方法和道路也是一样,虽然一个讲述得很详细,一个倾听得很认真;一个论述得头头是道,一个理解得句句是理,一个发自肺腑之言,一个听了大有裨益,但木鸿飞毕竟没有系统化地进行计算机学习,以其如此短暂的计算机生涯肯定不能如此迅速的理解计算机学习方法的真谛,未来必然有一段弯路。

果然,弯路来了。

在哥哥论道之后,木鸿飞并没有马上开始基础课程的学习,他还沉迷在动画之中,妄想着可以在动画的道路上继续前进。于是乎他把目光投向了哥哥的书架。

北青楼是个筒子楼,每个老师只能住宿在一个比蜂窝还小的房间中。哥哥的房间中紧紧的摆放了一张床和一套座椅,还有就是一个书架。书架大约半堵墙大小,极不和谐的挤在了这个狭小的房间中,上面琳琅满目摆满的全是书,成为这个蜂窝最大的特色。

书架的第一层摆满了英语书,除了大学教程、考试类书籍,比如《托福阅读》、《GRE阅读》等,还有诸如《乱世佳人》之类的英文原著。木鸿飞的目光在迅速扫描后,上移一层。

书架的第二层摆满了数学书,木鸿飞见到了《数学分析》、《概念论》、《组合数学》等认识的课程,也找到了诸如《近世代数》、《离散数学》等首次听说的理论。当然这些都不是预想的目标,于是目光再度上移。

书架从第三层以上就全是计算机书籍了,木鸿飞抽取了几本,《PASICAL程序设计》、《Viual C++程序设计》等等,随意的翻了翻,页面上大量的中文和代码行,没有太多吸引人的内容和图片,又一一插了回去。在漫无目的的搜寻中,一本书引起了木鸿飞的注意,书名叫《C语言成像与光线追踪程序设计》,听名字大概是用程序来画图,而且是比较高级的图像,封面上画满了圆球,或许就是用书中程序设计的。

木鸿飞低头看了看桌上的一个玻璃杯,透过玻璃,可以清楚地看到桌面,不过经过玻璃的阻隔,无论形状还是颜色都发生了变化,而且杯的边缘也有一定的反光,甚至还有部分如镜子般映射了后方的事物。这些就是光线的作用,虽然木鸿飞不懂绘画,但也知道想要栩栩如生地画出这个“桌上杯子图”,非功力高超的画家不可。

“这本书可以画出只有画家才能画的图,”木鸿飞心中有了计较,“就学习它吧!”

木鸿飞迫不及待的希望能够用程序生成一幅美丽的画面,而最快的实现方法,不是学习C语言光线成像,而是从书中照抄一段程序,直接输入运行观看结果。当然,这种做好并非木鸿飞独创,很多学生都有此种想法。

照抄代码,一般都有两个原则,一是实现的功能要趣味化,大家可能有兴趣画个漂亮的图片、设计一个好玩的游戏等等,但是却没有同样的兴致去计算一个复杂的数学公式。二是照抄的代码要将可能的短,倘若只一页纸就能实现3D旋转,估计人人都会试一试。若是输入整整一万行代码都只有全部内容的10%,就算是最美的游戏程序也没有人继续。

木鸿飞打开书本,一页一页的寻找,剔除太长的和无趣的程序,经过漫长的搜寻,终于停下来,“就它了!”根据书本的介绍,这是一个显示圆球的程序,代码也不长,只有两张共四页纸。

“哥哥,哥哥,我要编这个程序。”木鸿飞拿起书,走出房间,寻找哥哥。

此时木鹏飞正在走廊中做菜。筒子楼就是这样,由于面积狭小,楼道一般兼任厨房。看到弟弟来了,他关上火,接过书,看了看封面,哥哥皱了皱眉头,“这些内容对你来说太早了,刚刚不是跟你说了要先学习基础吗?怎么转眼你就忘记了。”

“没有忘。我只是想在学习基础之前,先看看别人编写的趣味程序,提高自己的学习兴趣而已。”木鸿飞狡辩道,“等我编好了这个程序,就从头学起。”

“问题是你连C语言都不知道,能编好吗?”哥哥表示怀疑。

“试一试啥。再说了,照着书输入代码就可以了,又不需要了解什么知识,会打字就行。”木鸿飞仍不放弃,“而且这段代码只有两页纸,很容易就搞定了。你告诉我用什么工具编写C语言程序就行了。”

筒子楼的走廊光线很暗,哥哥不能看清楚书上的内容,于是他走到旁边一扇门前,欲借门中透过的亮光看清楚,“这种程序一般很长的,照抄也要很久时间。”

“我找了一个程序,很短,只有4页纸,我做了一个记号,你看在这里。”木鸿飞把书翻到那一页。

“小木兄弟俩,你们在干什么?”哥哥借光的地方正好是高老师家,听到俩兄弟的谈论,高老师也探出头来。

“我想照抄一个程序。”木鸿飞老实的回答。

“我看到了,C语言成像。小木啊,现在计算机发展真的快,很多东西都不用画了,所有的光线都可以计算出来。”高老师感叹道。只是高老师没有想到,他的感叹,更加加深了木鸿飞照抄程序的决心。

“你确定一定要编这个程序?”趁着高老师与木鸿飞谈话的空档,哥哥已经浏览了书本前后几页。

“对!”木鸿飞坚定的点点头,然后在加上一句:“确定一定以及肯定!”

“好!”哥哥笑了起来,“行!吃完饭就教你!”

OK!”目的得逞,木鸿飞也高兴起来。

不过筒子楼的走廊光线太暗了,木鸿飞又只顾着看高兴,没有注意到哥哥的笑容中藏着一丝诡异,一个陷阱正等着他。

 


 本文转自 zhuyunxiang 51CTO博客,原文链接:http://blog.51cto.com/zhuyunxiang/426495,如需转载请自行联系原作者




上一篇:C语言OJ项目参考(1045)插入有序数组中


下一篇:《C语言及程序设计》实践参考——有序数组中插入数据(函数版)