1.3.36

图形算法与繁复之美

杭州/设计爱好者/3年前/269浏览
图形算法与繁复之美

图形艺术需要对百万级的图形对象进行处理和互动,已经远远超出了传统的设计手法的范畴,需要使用编程与算法才能实现。

在 2021 年的阿里巴巴设计周上,展出了由 NOHLAB 和 DECOL 合作推出的装置艺术作品。无数个粒子在屏幕中流动、碰撞,绽放出动人心魄的美。

而此类图形艺术需要对百万级的图形对象进行处理和互动,已经远远超出了传统的设计手法的范畴,需要使用编程与算法才能实现。而本文会从设计师的角度,尽量浅显地阐述一些图形算法的特征,错误之处敬请指正。


图形函数

给定函数名和相应的参数,屏幕中即绘制出相应的图形。可以类比为我们在 photoshop 或 sketch 中绘制一个椭圆、矩形等等。在设计师的眼中,万物皆为有形的像素,鼠标在何处按下、拖动、松开,均基于设计师对视觉要素变化所作出的反馈,以及个人的审美。所不同的是,程序是以数据的角度看待一切要素,一个椭圆在程序的眼中就是横纵坐标、尺寸、色值。一切事物转化为数值,也就提供了针对图形去计算、互动的前提。当然,photoshop 和 sketch 中的绘图工具也是封包了、界面化之后的图形算法。

此外,我们也可以基于自带的函数编写一些自定义的类,好比 sketch 中的组件或 illustrator 中的符号。比如下图中,可以预先写好一个类,在主程序中只需一行代码即可引用。

除绘制图形元素之外,还有诸多数据处理的函数,例如产生随机的数值、对数值排序、求和、求平均值等等。


枚举

有一个成语叫“不胜枚举”,即数量太多,数都数不过来。在有成千上万对象的前提下,计数尚且如此艰难,更何况绘制千万个图形,或者对千万个对象进行加工。

而枚举正是程序最可贵的品质。把一件事情做上十几遍,毫不厌烦。

做上一百遍依然任劳任怨。它没有情绪,不会抱怨,更不会出差错。


变量&数据

前面说过,一个图形要素不管是方是圆,在程序的眼中都是数据。既然是数据,就可以运算,用变量替代常量,产生变化。

随机变量(每一个都不一样)

重复以下动作 100 次

{

    绘制一个大小随机、透明度随机的圆;

    再绘制一个大小随机、透明度随机的圆;

    绘制一条角度随机的直线;

}

//此时设计师已开始抱怨

刷新变量(每一次都不一样)

在屏幕中绘制 200 条鱼;

每隔一帧,刷新位置和方向;

重复以上动作 1000 次;

//设计师扔掉了鼠标和键盘

引入数据

加载一张照片;

读取照片上每一颗像素的色值;


新建一个画布;

在相应的位置上绘制随机的线条(线条密度取决于照片中对应位置的像素明度);


算法

除了引入变量和数据,也可以通过算法生成数据、加工数据。如分形算法,可以将简单的图形转化为复杂且有规律的图形。


条件语句

就如点击按钮会触发动作,种下一粒种子会长出嫩芽,世间万物充满逻辑。图形艺术中也是如此。

条件触发

如果 (点击一下鼠标)

    生成一个小球;

如果 (小球碰到底部)

    小球弹回来;

如果 (小球上升速度降为 0)

    小球开始反方向加速;

图形进化

如果(一条树枝生长结束)

{

    在树枝末端产生 2~3条分叉;

    树枝长度缩短 30%;

    树枝粗细缩小 30%;

    树枝透明度减小 2%;

    树枝颜色色相偏移 0.05;

    如果(一条树枝生长结束)

    {

        在树枝末端产生 2~3条分叉;

        ......

    }

}

如果树枝长度小于 2 像素,结束程序。//否则会因树枝数量太多导致程序崩溃。

以上是个人总结的一些图形算法的特性,接下来以一个具体的案例来讲一下这些特性是如何互相结合来生成图形的。


案例解析

下图是艺术家 David Crooks 的作品 Electric Sphere,复杂的细节形成了繁复的肌理和光影。

假定有一个圆,

在圆上找到 2 个点,高斯分布在圆的右侧。 //形成初始的变量、数据

假如将这些圆绘制出来,则如下图所示,点位分布随机而又有规律。

现在,要基于 2 个点位逐步分形,产生 33 个点位。//将初始的变量/数据使用分形算法产生新的变量/数据

连接成一条有质感的线条。//枚举所有数据,导入图形函数

在点位产生的过程中,我们需要依靠随机算法产生变化,又需要将变化限定在一定的范围内,以避免完全的无序形成的混乱感。

每经过一次分形步骤,点位的数量都在成倍增加,第 5 步时,产生了 33 个点位, 若要使用传统绘图工具来实现,无论如何都是一件繁琐无比的事情。而像这样需要极大的耐心和匠心才能做到的事情,对于程序来说,只需一瞬间。

不断变化、不断重复,形成极具质感的美。


1984年,苹果发布了初代麦金塔电脑,其中创造性地使用了大量的图形界面。在那之前,想要在电脑中执行一个操作,绘制一个简单的图形,都需要输入一长串代码。

图形界面将复杂的程序封包成简洁易用的界面,极大地降低了使用难度,并影响了一代一代的设计软件界面。

界面在前台,程序与算法隐身幕后。譬如,在 photoshop 中,基于空间卷积算法,形成了大量的图像处理工具及滤镜库,而将有限的参数以滑块的形式释出。

图形界面极大地提升了设计的效率,同时也抹去了变量输入的接口,也就意味着无法通过枚举的方式进行大批量的运算。因此,使用传统的设计手法无法快速地产生极具多样性的、复杂的美感。

时代更迭,我们面临的设计场景变得越来越具有多样性,我们总会遇见一些传统设计手段无法解决的问题,新的问题需要新的工具,而新的工具又会催生新的表现形式。



关联阅读——以数为弦,鸣奏山水清音(数据的生成与加工)

6
Report
|
1
Share
评论
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
Be the first to comment
Log in