实验编程
首发于实验编程
【编程德鲁伊 - 数学篇】MaxMSP三角函数可视化

【编程德鲁伊 - 数学篇】MaxMSP三角函数可视化

【编程德鲁伊】系列,是我的横向编程练习笔记,每期围绕一个主题(数学物理电子图形声音...),用几种程序语言分别实现。战法牧贼同时修,能抗能打能奶能开溜。

题图引自www.deviantart.com

数学篇 - 三角函数

本着不给自己挖坑的原则,先找个(看上去)简单弱小的,就从初中数学三角函数开始吧。

挑个简单的...


三角函数定义

三角函数(英语:Trigonometric functions)是数学中常见的一类关于角度的函数。三角函数将直角三角形的内角和它的两个边的比值相关联,也可以等价地用与单位圆有关的各种线段的长度来定义。三角函数在研究三角形和圆等几何形状的性质时有重要作用,也是研究周期性现象的基础数学工具
常见的三角函数包括正弦函数(sin)、余弦函数(cos)和正切函数(tan)
—— 维基百科

注意加黑的周期性,声音和可视化编程大部分与此有关。


用单位圆定义三角函数:

引自维基百科


直角坐标系sin(x)和cos(x)函数图像:

引自维基百科


合起来了解下:

引自Pinterest


至此好像也没什么可说的,反正笔记不是教程,任性就是胡编。


三角函数的MaxMSP实现

Max里跟三角函数有关的功能很多,可以说整个MSP都以此为基础。
但本次练习用的是Max Jitter来可视化三角函数,并没有用到MSP。

Max里有很多功能子集,其中最著名的就是跟声音相关的MSP,跟图形图像相关的是Jitter。
现在其实官方名称就叫Max,只是MaxMSP这个早期名称太有代表性了,文章标题也用MaxMSP来改善下SEO。


起先感觉挺简单一玩意儿,磕磕绊绊几个小时,Max真的是学起来如滴水,忘起来如泉涌。。。况且拿葱的大婶也不是好惹的。

实现后的Patch大约长下面这样:

一些Max常用片段参考了非常棒的视频教程系列:
Amazing Max/Msp Tutorial
youtube.com/watch?

大体思路是用jit.gen去操作jit.matrix,三角函数逻辑都写在jit.gen里,然后把最后变换后的matrixjit.mesh画出来。

总之,要把大象装冰箱,分三步就可以,开门、装!、关门。

动态效果:

​很简约是不是,原计划真的比这个复杂。。。


Talk is cheap. Show me the code!

本例及【编程德鲁伊】系列大部分代码都开源在这里:
github.com/avantcontra/

请猛戳下方buy me a coffee赞赏

或者在Patreon上订阅更多资源:
patreon.com/avantcontra

Cheers~

Contra


微信公众号/知乎专栏: 实验编程 (原浮生开方,为了SEO忍痛改名了)

网站: floatbug.com

编辑于 2019-07-04

文章被以下专栏收录

    实验编程(Experimental Programming),意义取自实验艺术,实验电子,或实验音乐。 围绕计算艺术(Computational Art)、生成艺术(Generative Art)、人工智能、交互媒体、创意编程、全栈开发、低科技制作等方面。