APP下载

3D建模中的随机之美谢作如

2018-01-16周源远

中国信息技术教育 2018年1期
关键词:笔筒镂空程序员

周源远

为现实生活的物品进行3D建模,不仅要认真测量实物,还要进行各种比例计算,力求达到精确。但如果设计的是艺术品或者有艺术味的作品,又往往希望它能够“随性而为”。例如,让某个作品模型每一次打印出来的实物都有一些不可预见的变化,是不是特别有意思?图1中村庄的模型实际上用的是一个房子的模型,然后批量复制出来,这些房子的位置、大小和方向都是随机生成的,整体上看起来错落有致。

在常见的建模软件中,想要实现上述的想法并不容易,因为大多数建模软件没有提供这样的功能。幸运的是,参数化建模软件3D程序员提供了随机数生成函数,使用者结合循环、缩放等语句,就能够实现在3D建模中加入随机元素,让生成的作品变得有趣。

计算机中的随机数

在科学研究中常常用到随机数,如从统计总体中抽取有代表性的样本,或者将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等。随机数最重要的特性是,它所产生的后面的那个数与前面的那个数毫无关系。

在计算机编程中随机数的应用非常广泛,最常见的是游戏和艺术绘图。使用随机数可以让游戏产生不可预知的变化,从而增加乐趣。例如,“石头剪刀布”游戏是电脑生成的一个随机数和游戏用户输入的信息进行比较。图2是用Processing编写的小程序,功能是绘制出由随机的点和线组成的图案,每一次运行都能产生不同的美丽图案。

而真正意义的随机数是按照实验过程中表现的分布概率随机产生的,其结果是完全不可预测的。计算机生成的随机数其实是“伪随机数”,这些数列看上去“似乎”随机,实际上是通过一个固定的、可以重复的计算方法产生的。即使这样,计算机的随机数也能够满足具体应用中的大部分需求。

3D建模中随机数的应用

3D程序员的随机数功能位于“数学”模块,能够生成起始值到终止值之间的整数。随机数的具体应用可以通过下面几个案例来展开。

案例1:随机变化的花瓶

3D程序员中有个花瓶的范例,是典型的参数化建模例子。范例是描述利用一个正弦函数绘制的曲线,然后旋转形成一个曲线圆滑而优美的花瓶(如图3)。

将正弦函数公式的一些关键参数替换为随机数,就可以改变花瓶的整体长度或者宽度,那么每一次产生的花瓶造型都会变得不一样。图4所示的是将花瓶高度换成随机数的代码,每一次生成的花瓶高度都是不一样的。

同样,也可以更改花瓶的宽度(如图5)。这些造型不一的花瓶打印出来并摆在一起,能够体现一种随机之美。

案例2:随机镂空的肥皂盒

肥皂盒大都是由放置肥皂的凹处以及底盘的沥水孔组成。设计一个肥皂盒,关键之处就是用循环语句来实现对沥水孔的批量处理,这也可以用3D程序员实现。利用循环语句,用数学模块指定循环变量i的起始值、终止值、每次循环的增量,参考代码和生成的模型如图6所示。

在循环的增量上加入随机数,就能实现肥皂盒底下的穿孔数量随机生成,而且每次生成的模型都不一样(如下页图7)。

同样,还可以在沥水孔缩放系数上加入随机数,让沥水孔的大小变得不一样,甚至可以改變循环变量的起始值位置,让沥水孔的位置也发生变化。

案例3:随机镂空的笔筒

在循环的基础上,以镂空笔筒为例,角度旋转结合随机数,让爱心的角度在0~360度内随机变化,生成多角度镂空的爱心笔筒,这让笔筒变得更有特色,参考代码如图8所示,效果如图9所示。

这样的案例还有很多。例如,构造一棵圣诞树,可以通过参数让树进行“自由生长”,随机生成树的分层次数或者叶片节点的数量。又如,设计一个创意童话城堡模型,可以用随机数控制城堡的门、窗、烟囱等的大小,甚至可以通过随机数在丰富的色域系统中随机赋色。通过随机数的应用,建模将变得更有艺术性,跳出了传统的基于精确计算的建模思维。

结语

在学习3D建模的过程中,无论是学习范例,还是最终设计自己的个性化作品,都在不断重复经历提出问题、选择建模方法、推导模型的公式、求解模型这一建模过程,而随机数的加入则从数学角度提出了更高的要求。因为要合理使用随机数,就要找出模型的特征参数并设定合理的随机数范围,还要找出不同参数之间的关系,这些都是数学建模的核心能力。也正因为这样,学生才有可能会为了设计出更加有趣的作品,认真学习数学。通过“造物”促使学生进行跨学科学习,并对学科更加感兴趣,这正是创客教育的最大价值所在。endprint

猜你喜欢

笔筒镂空程序员
镂空幻想
2020年程序员依然很吃香
“鼠来宝”笔筒
镂空解构
拼折镂空立方体
程序员之子
加班
无敌笔筒
黄杨木雕的镂空技法