找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4652

积分

0

好友

602

主题
发表于 4 小时前 | 查看: 6| 回复: 0

在不少艺术生的印象里,一提起“三角函数”,脑海里蹦出来的还是高中课本里那根死板的 $y = \sin(x)$ 波浪线,或者几何画板里单调的圆形轨迹。

坦白讲——如果三角函数只能画波浪线,它根本不配被称为创意编程的“灵魂画笔”

在艺术编程殿堂 OpenProcessing(openprocessing.org) 上,那些常年霸占 Explore 热门榜首、被 MoMA 或佳士得数字艺术展青睐的生成杰作,背后往往藏着一个让外行人难以置信的秘密:

艺术家的降维打击

很多看起来如同动用了好莱坞级 3D 渲染器、甚至模拟了深空流体动力学的神作,其内核没有复杂的物理引擎,没有庞大的网格模型,仅仅是几行三角函数的高阶相位与空间映射。

今天,我们彻底抛开教科书式的枯燥讲解,直接带你拆解 OpenProcessing 上最震撼、最具审美价值的 4 大神级三角函数视觉流派

01 奇异吸引子:仅凭 2 行代码,雕刻深空星云与流体薄纱

如果评选生成艺术史上“以极简代码创造极繁之美”的巅峰,克利福德与德容吸引子(Clifford / De Jong Attractor) 绝对名列前茅。

你看到的不是由 3D 软件渲染的丝绸,而是在完全没有 Z 轴的二维平面上,由数百万个半透明微粒迭代碰撞出的拓扑折叠

克利福德奇异吸引子:纯三角函数生成的深空流体烟雾

▲ 纯数学实时渲染:120万个微粒在三角函数力场中累积出的深空薄纱(Clifford Attractor)

令人战栗的地方在于它的数学实现——核心公式居然只有这两句:

x_next = sin(a * y) + c * cos(a * x);
y_next = sin(b * x) + d * cos(b * y);

为什么它会拥有令人惊叹的流体质感?

因为三角函数的非线性周期折叠,会把原本平直的空间无限拉伸、扭曲并折叠回自身。通过控制透明度(Alpha Accumulation),密度高的地方发出如星系核心般的璀璨光芒,密度低的地方泛出宛如深海发光水母般的薄雾。

02 谐振仪与莫尔弦丝:重力摆钟凝固的建筑级薄膜

在维多利亚时代,科学家发明了双摆绘图仪(Harmonograph)——用两根长短不一的物理摆钟,借助重力与摩擦阻尼绘制出奇妙的谐振曲线。

在 Processing 中,当四个带有微小频差衰减的正弦波相遇(例如频率比设定为接近但不等于整数的 3.001 : 2.000),六十万次细腻描画会引发前所未有的莫尔干涉效应(Moiré Effect)

多摆谐振与莫尔弦丝艺术

▲ 4 重衰减正弦波谐振交织:呈现出扎哈·哈迪德式参数化建筑表皮与半透明发光织物质感

这些极细的彩色光弦层层叠叠,在人眼中制造出了极具欺骗性的立体空间感——你看到的不是线,而是一座在幽暗虚空中缓缓起伏的半透明光之穹顶。

03 三维参数化拓扑:纯代码捏出的超现实雕塑

很多设计师以为要做出前卫的 3D 艺术品,必须在 Blender 或 Cinema 4D 里雕刻拉扯面数。

但 OpenProcessing 上的高阶创作者,往往直接用三角函数参数方程在内存中实时“生发”出复杂的空间拓扑纽结(Torus Knot)与异星有机骨骼:

3D参数化三角函数环面纽结

▲ 纯三角函数参数方程构建的 3D 空间环面纽结雕塑(Torus Knot p=3, q=7)

不需要加载几个 G 的复杂网格文件,代码只用 $p$$q$ 两个互质常数,让环形坐标在 $X, Y, Z$ 三维空间中不断穿梭自锁。配合正弦色谱着色,整个结构充满了数学与未来主义相交的冰冷神圣感。

04 蜂与炸弹(Bees & Bombs):极度舒适的动力学催眠

如果你在社交网络上刷到过那些让人“看了一下午停不下来”的几何动力学循环动图,你大概率见识过大神 Dave Whyte(网名 Bees & Bombs) 的杰作。

Bees & Bombs 风格同心正弦几何波动阵列

▲ Bees & Bombs 标志性美学:距离延迟正弦相位波驱动的同心六角动态波涡

为什么刚硬的几何体能运动得像水滴一样具有生命感?

Dave Whyte 的核心不传之秘就在于“距离衰减的相位波(Distance Phase Wave)”

float phase = time - dist(x, y, cx, cy) * delayFactor;
float angle = sin(phase);

就这么一行简单的距离延迟,当数百个几何体从内向外逐层受力时,机械阵列瞬间化作水面泛起的层层涟漪。没有任何突兀的开始与停顿,三角函数的连续周期性赋予了它永不枯竭的无缝循环生命。

05 25 行硬核实战:在电脑上复刻你的第一张星云吸引子

想亲身体验这种数学带来的视觉震撼吗?复制下面这段经过精简提炼的完整 Processing 代码:

float a = -1.4, b = 1.6, c = 1.0, d = 0.7;
float x = 0.1, y = 0.1;

void setup() {
  size(900, 900);
  background(8, 10, 20);
}

void draw() {
  // 每帧高速计算 20000 个迭代微粒
  for (int i = 0; i < 20000; i++) {
    float nx = sin(a * y) + c * cos(a * x);
    float ny = sin(b * x) + d * cos(b * y);
    x = nx;
    y = ny;

    // 映射到画布坐标
    float px = map(x, -2.5, 2.5, 100, 800);
    float py = map(y, -2.5, 2.5, 100, 800);

    // 极低透明度(Alpha=12)制造星云微光渐进累积效果
    stroke(100, 180, 255, 12);
    point(px, py);
  }
}

运行它,静静观察你的屏幕。几十秒后,数百万个幽灵般的发光微粒会在深黑色的背景中缓缓凝聚,深邃的宇宙星云与流动的丝绸折痕将在你眼前从虚无中“生长”出来。

✦ 结语:数学是艺术家与自然沟通的秘密方言

很多时候,我们被学校里的公式证明消磨了对数学的感知。但在生成艺术的世界里,三角函数从来不是试卷上的数字,它是大自然起伏的胸膛、是星系旋转的引力、是物理摆钟凝固的舞步。

把参数交给数学,把直觉交给你自己。当你按下运行键的那一刻,你就是在亲手创造一个全新的宇宙。

如果你也对这类数学与代码交织的视觉实验感兴趣,欢迎来云栈社区和更多创意编程爱好者交流。




上一篇:Uber AI 软件工厂成本优化:智能体请求暴增9.4倍 token 账单不涨
下一篇:Baileys 免费直连 WhatsApp:三条自动化路线怎么选
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-6 07:52 , Processed in 1.000845 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表