从零开始学习 Processing合辑

Coding Alan 10个月前 (09-05) 1477次浏览 0个评论 扫描二维码

时至今日Processing 在新媒体艺术行业依然具有重要的地位,但相较于TouchDesigner, VVVV 等而言,Processing 总是让艺术生们望而畏。一方面在于写代码这件事让很多人觉得不自在,另一方面相关中文资料也有欠缺。本合辑旨在尝试通过使用案例结合编程知识讲解的方式让大家入门并进阶 Prcoessing。本合辑中的主要内容取自Abe Pazos(Fun Programming)所录制视频以及Processing- A Programming Handbook for Visual Designers and Artists, 2 edition一书(该书在国内已发行了中文版,名为Processing语言权威指南(第2版))。

近期已获Abe Pazos Solatie本人的授权,将会搬运他的视频至国内的平台上,在与艺术家的沟通中,他表示会下架掉 YouTube 上的视频,因为他不喜欢平台靠贴片广告挣钱,因此准备上传到目前均无视频贴片广告的B站以及新媒体视频垂直网站MANA上,敬请期待。

艺术家简介:Abe Pazos Solatie是一名艺术家及创意编程工程师,致力于创造微观和有机主题的静态、动态及交互影像。 快乐编程(Fun Programming)系列源自其于2011年8月发起的一项日更挑战,之后累计完成Processing基础视频共153集。虽然视频并不算很新,但 Processing这些年的变化并不是太大,所以学习起来依然不过时(Processing 4目前仍处于Alpha版,官方未透露稳定版的发布时间)。

关于视频清晰度:早期录制部分视频时考虑播放器上会存在非平滑插值( non-smooth interpolation),所以调低了分辨率来让其在手机上显示更为美观。

视频目录

  1. Processing快乐编程001 开山篇
  2. Processing快乐编程002 安装Processing及点、线的绘制
    本视频中我们将开始安装Processing并使用point() 和 line()进行点线的绘制。视频中会介绍到坐标系的使用,通过 X和 Y值进行定位。与数学中的坐标系略有不同,这里的 X 为从左边框起算的距离,而 Y为从上边框起算的距离。
  3. Processing快乐编程003 使用random()函数实现动画
    本视频中学习如何使用line( random(100),random(100), random(100),random(100) )来随机绘制线段进而产生动画效果,同时讲解了的 background()函数的使用,用于设置画布背景色。
  4. Processing快乐编程004 颜色、灰度级和frameRate()函数
    本视频讲解如何保存代码到电脑硬盘上。通过background()函数演示了颜色灰度以及 RGB 颜色模式的使用。同时使用到了frameRate()函数,放在 setup()函数中使用。
  5. Processing快乐编程005 激光效果以及直线颜色的修改
    本视频讲解如何为随机线段设置颜色,实现一种类似夜店的激光效果。还讲到了如何进行代码的自动格式化(快捷键 Cmd/Ctrl+T),这样去除多余的空格、让代码变得更加美观。视频中用到的主要函数有 line(), stroke(), random()以及 setup()和 draw()。
  6. Processing快乐编程006 白色线段动画
    本视频为练习课,讲解如何绘制黑底白线的动画效果。视频中对于线段的绘制也进行了详解:line(x1,y1, x2,y2)。
  7. Processing快乐编程007 水平线动画及变量的使用
    本视频将第6课中的直线全部变成了水平线。实现这一功能我们初次引入了变量(variable)的概念。变量是用于存储值的一块内存空间,可在程序中多次反复使用。水平线的起点和终点距离画布顶部的距离相同。为确保这两个点与顶部的距离相同,我们可以使用同一个变量。这里使用浮点型(float)是因为random()默认返回该类型。
  8. Processing快乐编程008 垂直线动画
    本视频比较简单,通过对上一个视频的代码进行调整将水平线变为垂直线。
  9. Processing快乐编程009 调整画布大小及彩色动画
    我们在上一个视频所学程序的基础上做了进一步的修改,让原本黑白的竖线变成了彩色。视频使用了 random 函数的另一种用法,即传了两个参数,一个最小值、一个最大值。然后视频中讲解了如何使用size()函数来让画布变大,不使用该函数时默认为100×100的画布。
  10. Processing快乐编程010 画圆、矩形以及颜色的填充
    本视频中讲解如何使用 ellipse 函数“画鸡蛋”,通过将第3和第4个参数设成同样的值可画出正圆。然后我们可以通过 rect 函数来绘制矩形,使用rectMode函数可控制是从中心(CENTER)开始绘制还是从左上角(CORNER)开始绘制等等。我们已经学习过 background 函数用于设置背景色,stroke 函数用于设置边框,而 fill 函数用于填充前景色。Processing为方便我们拾取颜色提供了一个 Color Selector 工具,可以直接在相关函数中使用十六进制的颜色值。
  11. Processing快乐编程011 非随机数圆形动画
    本视频中我们首先复习了ellipse() 函数的用法,然后让圆从左到右进行移动。使用随机函数可实现动画。这里我们使用全局变量来存储圆心的 x 值(circle_x),这样在 void()和 draw()函数中均可访问,通过修改 circle_x 的值即可实现动画。
  12. Processing快乐编程012 使用if()语句实现循环动画
    本视频中我们学习了条件语句if(),其后的代码块仅在满足条件时都会执行。示例中我们借助它来判断小球是否移到画布之外,在超出右边框之后将其移至左边框,从而实现循环动画。然后我们还实现了两个小球按不同速度移动的效果。
  13. Processing快乐编程013 随机改变球的大小
    本视频中我们首次使用了print()函数。使用 print 可以打印变量值,在程序下面显示信息。在调用程序时出现意料外的情况时可以添加 print()打印辅助信息。随后我们对上一个视频中的程序进行了微调,使球在移动的同时随机改变大小。
  14. Processing快乐编程014 改变小球的移动方向
    本视频中用到了strokeWeight()函数来修改线的宽度,不使用该函数时线会很细。同时还对动画进行了复习,然后修改程序让其不只能从左向右移动,还能向其它方向移动,实现方法时改变 X 和 Y 的值。
  15. Processing快乐编程015 画布内反弹球效果
    本例稍有些复杂。之前我们的动画是在小球触达到边框时回位到另一边,而本例则实现了触达边框后反弹的效果。这里主要使用到了变量来存储小球移动的位置,变量值在正值和负值中来回切换。正值为向右及向下移动,负值为向左和向上移动。同时在视频中使用到了width和height这两个变量来获取画布的宽高,这样就不需要在修改宽高时修改相应代码了。另外还讲到了println()函数,它与print()的区别在于打印时多一个换行。
  16. Processing快乐编程016 制作彩虹动画
    本视频为雨后即兴录制的彩虹动画,大多是已学习的知识点,用到 noFill(), strokeWeight()等函数
  17. Processing快乐编程017 使用HSB颜色模式
    上一节视频结束时我们彩虹有些偏灰,我们一直都使用RGB颜色模式随机生成颜色。本视频中引入了新的颜色定义方式:HSB 颜色模式。通过colorMode(HSB)进行定义后即可使用。
  18. Processing快乐编程018 条形码效果
    本视频中进一步讲解了随机数及其对应的概率。修改相应数字会增加或降低概率,视频中我们使用了 if-else 配合随机数改变颜色,制作了一种类似条形码的效果。
  19. 视频持续更新中…

文章目录

下载地址

官方下载地址:https://processing.org/download/

GitHub:https://github.com/processing/processing/releases

国内镜像(感谢MANA全球新媒体艺术平台所提供的镜像源):

网络文章

其它内容

常见图形绘制

从零开始学习 Processing合辑

鼠标与键盘相关方法

mouseX, mouseY, pmouseX, pmouseY, mousePressed, mouseButton

keyPressed, key, keyCode

mousePressed(), mouseReleased(), mouseMoved(), mouseDragged()

keyPressed(), keyReleased()

loop(), redraw()

noCursor(), cursor()

绘制相关内置函数

size(), point(), line(), triangle(), quad(), rect(), ellipse(), arc(), bezier()

background(), fill(), stoke(), noFill(), noStroke()

smooth(), noSmooth()

strokeWeight(), strokeCap(), strokeJoin()

ellipseMode(), rectMode()

循环

while 循环
从零开始学习 Processing合辑
for 循环
从零开始学习 Processing合辑

喜欢 (4)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址