课程资源 / 所有微课 / 五、变量的应用

五、变量的应用

分类:
3D设计-CodeBlocks

  2019-07-05
1406

微课详情

今天,让我们从制作一条小路开始,尝试用不同的思路来建模。
0

案例1:制作一条小路

设计思路,我们采用一个六棱柱,并将其压扁后,按照一定的规律排成一条直线,形成一条小路。

思路一:创建一个六棱柱对象,并采用复制对象和移动的方法得到一条小路。(面向对象的方法,参考第九节)

思路二:使用顺序法,将每个六棱柱的尺寸设计好,并且移动到位。(结构化程序设计,顺序结构。)

思路三:循环变量法。每次告诉计算机操作同样的循环语句内的操作。(结构化程序设计,循环结构。)


这里给出思路三的程序步骤。

1、创建循环变量,系统默认会创建循环变量i,但是如果循环继续增多的话,可能会有更多的循环变量,变量名由系统给定,比如k、m等等。这里我们采用系统给定的k。

2、添加一个六棱柱,并且在Z轴方向上压缩0.2倍,并且每次沿着X反方向移动20的整数倍数值。

3、从1到5但不包括5,每次增加1,一共有1、2、3、4这四个数值,也就是循环体执行了四次,最后得到4个沿着X反方向平铺的六棱柱小路。

 

程序效果如下:

640 (1).gif


点击工具栏上的播放按钮查看运行效果。

一条小路参考链接:https://www.tinkercad.com/things/0GF46rA8VWe

1

 【尝试】

如果我们将循环变量i从0到5每次增加1的话,运行效果会有什么不同呢?

假如我们要修一条彩虹路我们可以用什么方法来实现?

 同样的类型,如果要生成一排栅栏,我们应该如何设计呢?

是算好了位置,用顺序结构一个个的写出积木块需要移动的距离,还是利用循环结构一次性的利用循环变量来生成呢?

答案是肯定的,如果只有几个或者为数不多的栅栏,那么可能效率差不多,但是如果一长排的栅栏,那么还是利用循环结构效率会更高。

 

【动手】

在搜索引擎中输入关键字面向对象的程序设计,看看我们能得到什么帮助?

请看下面的拓展思考题。

640.gif

单击工具栏上的播放按钮查看运行效果。

一排栅栏参考链接:https://www.tinkercad.com/things/5KTs4hpJLyD


2

案例2:制作一个桌子。

一般普通的方桌子,方形的桌洞,两条腿,支撑在地面上,如此简单的描述,你会如何设计这个3D模型呢?

如果我们给定了一个尺寸,将来如果每次改动都要将所有代码里面的尺寸都要更改一次,那不是很麻烦吗?

于是我们今天来学习一种新的方法——变量替换法。我们用变量来代替曾经出现在WLH等尺寸的地方。开来一起看看有什么不同吧!

WX20190705-213412@2x.png

操作步骤:

1、定义一个变量,我们从左边的数学类别中拖曳一个创建变量积木块到工作区,在积木块的右侧,有个小的下拉菜单,打开以后重新命名自己的变量,这里定义了4个变量分别是长度、宽度、高度和厚度。

2、在左侧的形状类别中,拖曳一个立方体积木块到工作区,然后在W、L、和H处,分别从左侧的数学类别中拖出刚才定义的长度、宽度和高度到其参数处,释放鼠标,得到如下图所示的程序。

3、同样根据自己的构思,使用立方体来构建桌子的腿的结构。最终效果如上图所示。

 

桌子参考链接:https://www.tinkercad.com/things/66gUs1W1ijh

3

【拓展练习】调用系统的随机函数,在地上生成一些随机的小花,小花用星形代替。

640 (2).gif

点击工具栏上的播放按钮查看效果。

小花参考链接:https://www.tinkercad.com/things/3R3xeRzbl4p


总结:

本节复习了,循环变量、一般变量以及随机数的概念和应用,熟悉这些方法对我们的编程很有帮助。

本节内容复习了结构化程序设计中的顺序结构、循环结构和创建对象,而根据程序设计的需要添加对象副本的方法,应用在不同的新对象中,这是面向对象的程序设计思路。

不同的设计思路有不同的程序代码块,各有优劣。

本节内容几乎都可以一题多解,随着编程内容的深入,我们编程的思路越来越开阔了。建议所有学习者能够根据自己的能力将几种思路的程序都设计出来,方便对比和参照学习。


注:完成全部内容时长约60分钟,要求每个学习者都能够完成这个基本练习。

说明:此学习资料中的积木中文翻译源自于TINKERCAD,可能将来发生变动,以TINKERCAD最新版翻译为准。