“数学”是什么?
“数学”不仅仅存在于大自然,在游戏、动画和音乐等商业或艺术作品中,也随处可见“数学”的影子。有时候从“数学”的角度重新思考和审视这些作品,不仅能为我们提供一个全新的欣赏视角,还能帮助我们洞察现象背后的原因、更好地进行艺术创作。
还记得在几个月前,用 14 天时间写出用户满意度全 5 分小游戏【星旅StarTrek】的零零后吗:颤抖吧!零零后已经开始爆肝写游戏了!
这款游戏的主程、来自华南师范大学的大一学生 HK-SHAO 这次就要从游戏、动画以及音乐三个方面和大家聊聊他所看到的“数学”。
引言
大家好,我是 HK-SHAO,今天我将从游戏、动画以及音乐三个方面去介绍其中涉及的数学原理。每个方面仅作介绍和发散,而不作深入解读,如果读者想深入了解某内容,可以上网查阅相关资料。
01
动画、音乐以及游戏
广义上来说,动画是“运动起来的画面”,音乐是“运动起来的音符”,而游戏则是“交互式的动画和音乐”。
我们小时候可能手绘过翻页动画,有些人可能曾用过 Adobe Flash 一帧一帧做过动画,而经典的宫崎骏动画电影则是将画面一张一张手绘到赛璐珞塑料卡纸上。当连贯的画面以一定帧率轮番切换时,由于人眼的视觉暂留现象而使人产生了画面运动起来的错觉,这便是动画的原理。
也许弹过钢琴或者弹过吉他的人知道,随着时间的流逝而弹奏出不同响度和和音调的声音便是“运动起来的音符”。我们知道声音有三个属性:响度、音调和音色,当这三个属性随着时间而变化时,音乐便产生了。在编曲软件中,横轴代表时间、纵轴代表音高,而每一个台阶便是一个音符,高高低低起伏的台阶便代表着音乐。
不同于动画和音乐仅仅是在其原子(图像和音符)上多了时间一个维度,游戏在动画和音乐的基础上又多了与玩家交互的一个新的维度,玩家能通过交互来改变游戏中的画面和音乐(音效),这便产生了游戏。游戏是动画、音乐、文学等多种艺术的集中表达,而且根据不同类型往往又会涉及程序设计、物理学、算法、图形学甚至 AI 多个学科,作为集大成者其往往蕴含大量数学原理。
02
碰撞而产生的 π
现代 3D 动画和游戏经常涉及物理的模拟,而如今的计算机图形学便专攻这一领域的难题(例如刚体物理模拟,流体模拟等)。为了引出动画以及游戏物理中的数学问题,接下来让我们“梦回高中物理”,以一个简单的问题开始。
在一个完全光滑的地面和墙壁内侧放置着质量分别为 、
的两个方块,当大方块以某个速度撞击小方块后,小方块会以某个速度撞击墙壁(整个过程中发生的一切碰撞均为完全弹性碰撞)。
请思考:如果 ,整个过程将会发生几次碰撞?
为了探究这个问题,我尝试分别用一个 C 语言程序和 3D 建模软件 Blender 进行了物理模拟,而模拟结果让人非常震惊!
C 语言程序进行了 6000000FPS 200 秒的模拟:
最终得到结果 314159。
看上去似乎没什么意思,但是精彩的部分来了,碰撞次数 和两个滑块的质量比
有着如下微妙的关系:
请思考:你发现了什么规律吗?