Processing——动态条形码

引言

条形码,虽然出现在我们生活的方方面面,但是却不被人在意,与条形码相伴的大多是垃圾桶和孤独的一个外包装。在人们眼中,条形码无外乎一堆竖线,有着宽度不等的多个黑条和空白,毫无生机,但是,条形码也是有灵魂的,博主这次做的就是想让条形码的灵魂更有趣。

背景资料

Design Barcode

日本的设计团队Design Barcode 从2005年开始就立志为一张张普通的条形码注入灵魂。他们的想法新颖而又有效,只需要简单的几笔,就能以艺术的手法绘制不同的条形码。
在这里插入图片描述
《神奈川条形码冲浪》,是不是给你一种夏天到来的冲动。
在这里插入图片描述
瀑布条形码,随着瀑布一泻千里。
在这里插入图片描述
同时,他们也解决了一个难题:如何让条形码看起来好吃。
这些充满创意的条形码,是Design Barcode团队送给这个世界最好的礼物。
如果对Design Barcode团队有兴趣的,欢迎继续访问他们的官网
http://www.d-barcode.com/barcodes.html

Steve Simpson

除了Design Barcode团队,设计师Steve Simpson也在黑白条纹中玩出了新花样。
在这里插入图片描述
这是某个牌子的烧烤酱。在这里插入图片描述
猜猜这是产品的条形码!?(提示:是一个吃的哦)
在这里插入图片描述
谜底揭晓:是这个牌子的霜冻优格,是不是整个产品都充满着活力与萌动。

创意思路

博主近期刚学过一门课程,交互设计,在课堂上老师生动讲述了向量、微分、细胞自动机等数学知识在艺术方面的应用,博主深感震撼。因此博主在综合两方面之后,想到条形码不只是“死”的,还可以是“活”的,在人们面前她只是死气沉沉的多个宽度不同的黑条和空白,但是,当人们走进她,接近她,她会展示她真实的一面,展示她生动的活力的一面。
我们都说“每个人都是独一无二的”,其实,每个条形码也都是与众不同的,她们承担着一份光荣的责任,虽然展示在外界的是一副副冰冷的面孔,可是她们的内心是炙热的,她们也有自己万里挑一的灵魂。正如坚守在各个岗位上的人们,尽管在旁人面前她们都是在机械、重复地做着一件事,但是当你走进她,你会发现一个不一样的她。
在这里插入图片描述
迎着暴雪依然坚守在岗位的交警。
在这里插入图片描述

几十年如一日地板书,孜孜不倦地教书育人。

技术实现思路

在技术实现方面,主要参考以下知识:
1、向量的应用。在这里我们假设每一个点都是一个二维向量,而这些每一个点拼成了一副完整的条形码,而基于向量,我们可以对每一个点进行操作,从而使整个条形码的运动自然而美观。
2、力的应用。当人们走进条形码(即鼠标接近条形码),条形码会做出不同的反应,在这里即可以把鼠标看作一个外力,条形码本身是维持一个稳态,但是当一个外力进入,稳态被打破,呈现出不一样的画面。
3、粒子系统。前面讲了,我们把每一个点看作一个向量,而这些点组合起来也就构成了一个粒子系统,因此对一个条形码的操作,实际是对这些点构成的粒子系统的操作。
4、细胞自动机。在其中一个条形码中加入细胞自动机的原理,原始条形码为第一代,当人们与她互动时她才会不断迭代。
5、自治智能体。在其中一个条形码中会加入自治智能体的原理,设定好每个点和鼠标的关系,使其自动变换。

技术实现细节

最终系统由五个类和一个主程序构成,五种Bar,在主程序的控制下进行绘制。

细胞自动机的实现

原理:细胞自动机是随着时间推移发生状态转移的系统。
细胞自动机由“细胞”对象组成,有以下特性:
A.细胞存在于网格中
B.每个细胞都有一个状态,但可能出现的状态数量是有限的,最简单的即1和0
C.每个细胞都有邻居
D.每个细胞下一个时间点的状态均由其邻居的状态决定
代码实现:
在这里插入图片描述
初始化细胞自动机。
在这里插入图片描述
根据当前状况,迭代变化。
在这里插入图片描述
绘制细胞自动机。

力、向量、粒子系统、自治智能体结合

原理:粒子系统,顾名思义,由多个粒子(对象)组成的系统,而在这次实现中,粒子即是向量。向量,有大小,有方向,力即是向量,对于向量的操作,可以更容易反映现实世界中存在的物理规律,也使整个系统的实现更有理论依据。而力、向量、粒子系统均是自治智能体的一部分,那么什么是自治智能体呢,自治智能体又有哪些特点,接下来让我们了解一下~
自治智能体是指那些根据自身意愿做出行为决定的主体。自治智能体有三个特性:
A.自治智能体对环境的感知能力是有限的
B.自治智能体需要处理来自外部环境的信息
C.自治智能体没有领导者
而在这次条形码的绘制中,我们是假设整个系统初始是处于一种稳态,当鼠标进入,即有外部环境的信息进入,自治智能体需要给予反馈,作出相应的反应。
核心代码(部)
在这里插入图片描述
更新每一时刻粒子的状况,与鼠标做交互。
在这里插入图片描述
根据状态绘制粒子。

主程序(部)

在这里插入图片描述
Bar1初始化。
在这里插入图片描述
主绘制程序。

浅谈向量

最后,我们再来说一下系统中均会出现的向量。
向量,是一个神奇的物件,他在编程中几乎可以处处出现。
《代码本色》
在《代码本色》这本书中,第一章即讲的是向量,在这本书里面,谈论的是欧几里得向量,定义是:一个既有大小又有方向的几何对象。向量通常被描述为一个带箭头的线段,线段的长度代表向量的大小,箭头所指的方向即向量的方向。向量有很多运算方法,加、减、乘、除、单位化、点乘,叉乘等等,这些方法在processing或openframeworks均可以通过一行代码实现,但是这些运算方法的结合可以呈现出各种各样的效果,书中后面出现的力、粒子系统、自治智能体等等都是在向量的基础上加以综合应用才出来的,没有向量,这些概念的提出也就少了很多光彩。
机器学习
在当前学习的计算机视觉课中,特征向量也是极其重要的一个概念。简单介绍特征向量,即一种在经过特定的变换之后方向不变,只是长度上伸缩的向量。而看它的原始公式:
Ax=λx
对应一个矩阵A,存在一个实数λ和和非零向量x,满足上面公式,则可以称λ为矩阵A的特征值,x为该特征值对应的特征向量。当然,特征向量在机器学习中也应用颇广。
神经网络
在深度学习中,初学者听说最多的一句话恐怕是“将数据向量化表示”,这里向量化表示可以理解为一个高维矩阵,将大规模数据用一个高维数据来表示,在运算时可以极大地减少运算时间,增加运算效率。
NLP问题
在NLP问题中,预处理往往是将文本数据进行词向量化(Word Embedding)表示,也就是将词数学化,目前最常见的词表示方法是One-hot Representation,即将每个词表示为一个很长的向量,这个向量的维度是词表的大小,其中绝大多数元素为0,只有一个维度的值为1,这个维度即代表了当前的词。例如:
“apple”表示为[0,0,0,0,0,0,0,0,0,1,0,0,0…]
“sun”表示为[0,1,0,0,0,0,0,0,0,0,0,0,0…]
每个词都是茫茫0海中的一个1。通过这个方式便可以把自然语言用数学符号表示出来,当然,在现在Deep learning中,使用的方法往往是另一种,称为Distributed Representation,这种一般表示为[0.0120,-0.108,-0.122,0.692…],这种相较于之前的好处是可以给两个词定义一种相关性,在距离上越近,相关性越强。有兴趣的可以读Hinton在1986年的论文《Learning distributed representations of concepts》,这是第一次提出Distributed Representation的概念。
感受
有些看似很简单的概念,但是在各个领域中都存在着它们的身影,看现在很多新突破,大部分都是基于最传统、最经典的概念做出的一些改进,有时我们只是看懂了它的字面意义,但是却没有搞懂它在应用方面的实际意义,现在工程上的突破,绝大多数是基于数学公式的,没有数学理论的支撑,整个工程便毫无意义,再来看艺术的创造,同样在具有数学理论下也更有活力,例如拉普拉斯变换、深度学习风格迁移,均是有一定的数学支撑,(值得一提的是,深度学习所提出的图卷积网络,也是用到了拉普拉斯矩阵,有兴趣的可以来这里看看)所以,无论什么时候,《高等数学》这本书还是值得放在床头随手翻翻的[滑稽脸]~

交互设计

交互设计主要通过鼠标和键盘。
当鼠标进入条形码中,条形码会自动与鼠标进行交互。
当鼠标进入可以选择区域,鼠标由箭头变为手势,提示可以点击。
当鼠标点击,变为彩色模式,再次点击变为黑白模式。
当敲击键盘,所有变换消失,重新初始化。

单独效果展示

每一个条形码都是一个独特的个体,都能散发自己的魅力,都能在这平凡的世界中展现一个不平凡的自我。

在这里插入图片描述
随着鼠标的移动,条形码围绕鼠标形成一个圆,周围的码线也跟随着一起游动,整个画面优美和谐,这,也许就是条形码的艺术细胞。
在这里插入图片描述
随着鼠标的进入,整个条形码发生了巨大的变化,不要惊讶,只是鼠标的进入使整个条形码细胞机开始运转,这是条形码的一种娱乐方式,也是条形码的内含的一种科学机制。
在这里插入图片描述
犹如徜徉在海洋里,后面是溅起的浪花,自由自在。
在这里插入图片描述
条形码也是有自己狂野的一面,她们也会享受生活,享受存在的意义。
在这里插入图片描述
看,随着鼠标的移动,像不像有一把剪刀,剪出了无数根悠长的线。

集体演奏会

生活是一部大电影,每个条形码都在其中扮演着不同的角色,当不同的角色在同一部电影同时绽放光彩时,相信,这一定会震撼人心。
在这里插入图片描述

光彩绚丽的外表

对于条形码来说,仅仅有一个有趣的灵魂是不够的,她们也渴望有一个光彩绚丽的外表,也渴望以一种不同的面貌出现在观众面前。在这里插入图片描述
是的,正如你看的一样,在这场演奏中,你就是指挥家,所有条形码都会在你的指挥下进行表演,也许你喜欢温柔甜美,也许你喜欢狂野奔放,相信我,你都可以驾驭,也请你相信自己,做自己生活的导演,展现自己的风采。

参考材料:
一张被注入灵魂的条形码,到底能有多骚?
Barcodes
趣图:条形码的艺术
词向量和语言模型
特征值和特征向量的几何意义
深度学习之词向量篇

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值