Processing创意编程

  • 一、前言
  • 二、下载安装
  • 三、基础语法
    • 基础用法
    • 模调整式
    • 数据变量
  • 四、系统接口
    • 鼠标位置
    • 鼠标拖动
    • 鼠标按下
    • 键盘监听
    • 获取时间
    • 全屏显示
    • 整体效果
  • 五、参考资料

一、前言

看到B站上的有很多有意思的创意编程,短短几行代码就实现了神奇的效果,于是笔者也不免手痒想玩一下。
本系列教程共三篇:
1、《Processing创意编程(入门篇)》
2、《Processing创意编程(进阶篇)》
3、《Processing创意编程(熟练篇)》

【转载请注明出处: https://leytton.blog.csdn.net/article/details/121888303】

二、下载安装

打开Processing官网,如下下图所示,可以下载Processing编辑器,进行编程运行。同时也支持js、android、和python环境。
(PS:P5.js的网页编辑器不需要下载安装软件,不过被墙了无法打开)

三、基础语法

基础用法

void setup(){//启动时执行一次的函数size(800,600);//画布大小background(255);//背景颜色,调用时会用该颜色覆盖整个画布ellipse(100,100,100,200);//椭圆(圆心x坐标,圆心y坐标,x方向直径,y方向直径)fill(255,0,0,150);//改变填充颜色RGBAstroke(#0000ff);//画笔颜色strokeWeight(2);//画笔宽度,内外各占1像素ellipse(200,200,100,100);strokeWeight(6);//画笔宽度stroke(0,255,0);//画笔颜色rect(200,0,100,100);//矩形,A点坐标、长宽//noFill();//取消填充noStroke();//取消画笔frameRate(1);//每秒调用draw函数次数}void draw(){fill(random(0,255),random(0,255),random(0,255));//随机更改填充颜色rect(200,150,100,100);
}
}

运行效果如下:

更多基础语法可以参考其他资料:

  • 《processing的基础语法》

模调整式

小技巧:速写本->调整模式运行,运行起来后,鼠标移动到draw函数内的值上,可以动态调整更新画布效果。

胡调一通后效果如下图所示:

数据变量

可以设置全局变量,或者局部变量进行计算。

void setup(){//启动时执行一次的函数size(800,800);//画布大小frameRate(2);//每秒调用draw函数次数}int i=0;
void draw(){if(i<8){stroke(random(0,255),random(0,255),random(0,255));line(0,100*i,800,100*i);line(100*i,0,100*i,800);i++;}
}

效果图:

此外,还支持for循环、while循环、if条件判断语法。

四、系统接口

鼠标位置

直接用mouseXmouseY来表示鼠标坐标。

画布颜色和圆的位置、颜色跟随鼠标变化,示例代码:

void setup(){//启动时执行一次的函数size(800,800);//画布大小noStroke();//取消画笔
}void draw(){background(mouseX/4,mouseY/4,100);//背景随鼠标变化fill(mouseX/5,mouseY/5,100);//填充颜色随鼠标变化ellipse(mouseX,mouseY,100,100);//圆形位置随鼠标变化
}

运行效果:

鼠标拖动


int pmouseX=0;
int pmouseY=0;
void mouseDragged()
{if(pmouseX==0){}line(pmouseX,pmouseY,mouseX,mouseY);
}

鼠标按下

if(mousePressed){//TODO
}

键盘监听

添加以下函数则能监听键盘按键:

void keyPressed()
{print(key);
}

获取时间

year()、月month()、日day()

hour()、分minute()、秒second()

程序运行时间millis()

全屏显示

fullScreen()设置当前屏幕成全屏
fullScreen(int i)可以设置在系统中的其它屏幕上显示,i是系统中的显示器的编号;

Esc键退出
注意fullScreen不能与size函数同时使用。

整体效果

int pmouseX=0,pmouseY=0;void setup(){//启动时执行一次的函数size(600,600);//画布大小background(0);//背景色stroke(255);//fullScreen();
}void draw()
{   if(mousePressed){//print("鼠标点击");};
}void mouseDragged()
{if(pmouseX==0 || pmouseY==0){pmouseX=mouseX;pmouseY=mouseY;}line(pmouseX,pmouseY,mouseX,mouseY);pmouseX=mouseX;pmouseY=mouseY;
}void keyPressed()
{print(key);if(key=='c'){saveImage();}}void saveImage(){// 获取年月日int y = year(),m = month(),d = day();    // 获取时分秒int h = hour(),min = minute(),s = second();// 字符串化String sy = str(y),sm = str(m),sd = str(d);    String sh = str(h),smin = str(min),ss = str(s);// 补齐0if(m<10){sm="0"+sm;}if(d<10){sd="0"+sd;}if(h<10){sh="0"+sh;}if(min<10){smin="0"+smin;}if(s<10){ss="0"+ss;}// 系统时间字符串String sysTime = sy+""+sm+""+sd+"-"+sh+""+smin+""+ss;String name="E:\\"+sysTime+"-"+millis()+".png";saveFrame(name);
}

五、参考资料

二锅头【Processing零基础中文教程】1、入门篇

如果本文有帮到你,请点个赞让我知道哦

Processing创意编程(入门篇)相关推荐

  1. MAYA API插件编程--入门篇

    MAYA API插件编程--入门篇 作者:华文广          日期:2010.11.28 我们知道,MAYA是一个基于结点的插件式软件架构,这种开放式的软件架构是非常优秀的,它可以让用户非常方便 ...

  2. python机器人视觉编程——入门篇(下)

    目录 1 全篇概要 2 图像的读取与运算基础 2.1图像的读取 2.1.1 从磁盘的图像(.jpg,.npg,.gif等等)读取 2.1.2 从摄像头里读取图像 2.2图像的运算 2.2.1 图像的数 ...

  3. ​​Python少儿编程入门篇(2)算术运算和赋值运算

    Python少儿编程小课堂(二) 入门篇(2)算术运算和赋值运算 标识符 就是一个名字,就好像我们每个人都有自己的名字一样,主要作用就给变量.函数.类.模块以及其他对象起名字. 命名规则 1. 标识符 ...

  4. Python少儿编程入门篇(3)比较运算和逻辑运算

    Python少儿编程小课堂(三) 入门篇(3)比较运算和逻辑运算 运算符(2) 上一节课讲了算术运算符和赋值运算符,本节继续讲其它运算符: 比较运算符 ==.!=.>.<.>= .& ...

  5. python机器人视觉编程——入门篇(上)

    目录 1 全篇概要(主要阅读对象及内容提要) 2 python知识点之--环境及依赖的库安装简述 2.1 Python开发环境安装 2.2 Python 机器视觉模块安装 2.3 写第一个Python ...

  6. 编程入门篇之零基础入门(通用)

    为什么写这一篇? 编程一途,最难的莫过于入门.如果你想学,那么现在就开始,编程远没有想象中那么复杂. 从变量说起 2x + 1 = y 这是一个数学中的二元一次方程,其中x和y就是变量,在编程中的变量 ...

  7. Cookie编程入门篇

    Cookie就是所谓的" 小甜饼" ,他最早出现是在Netscape Navigator .0中.Cookie其实就是由Web服务器创建的.将信息存储在计算机上的文件.那么为什么W ...

  8. Python异步编程入门篇

    本人很懒,不想详细些过程,后续会更新代码也许,具体文章推荐链接 ---------深入理解Python异步编程-----–

  9. 【手把手带你刷题】-C语言编程入门篇(一)

    大家好,我是深鱼~ 目录 前言: 在线OJ <1>什么是在线OJ <2>为啥训练在线OJ 1.实践出真知 2.我是大V 3.有容乃大 4.缩短二进制 5.反向输出一个四位数 6 ...

  10. JavaScript 函数式编程——入门指南

    JavaScript 函数式编程 一.什么是函数式编程 **定义:**函数式编程是一种编程范式,将整个程序都由函数调用以及函数组合构成. 可以看成一条流水线,数据可以不断地从一个函数的输出流入另一个函 ...

最新文章

  1. Linus采访对Linux对git和对代码品味的理解
  2. Java面试题大全带答案 110道(持续更新)
  3. 一图读懂:中国科学院“基础研究十条”
  4. 教你打造一道超级防御的电脑防火墙
  5. 虚拟机系统的磁盘扩容妙招及案例
  6. 微软2011 Build大会:Windows 8盛大出场(转)
  7. 在电商界摸爬滚打10年,我学到这三点经验教训
  8. 0007-Reverse Integer(整数反转)
  9. linux系统的运行定义在,Linux系统运行级管理
  10. 最小延迟调度问题——贪心算法(C++实现)
  11. 线程池之ThreadPool与ForkJoinPool
  12. 小程序获取百度地图api
  13. 微信小程序云开发———云存储
  14. UG二次开发GRIP过滤
  15. 菜鸟成长手册:路由器技术深入剖解
  16. linux 修改键盘键值
  17. ncbi爬虫geneID注释
  18. excel合并多个工作表_这三个公式,可以帮您合并任意多个Excel工作表
  19. 接口技术实验:七段码显示
  20. android系统代码行数,鸿蒙用460万行的代码量,实现安卓1525万行代码实现的所有功能...

热门文章

  1. nodejs打开默认浏览器
  2. iOS10 本地通知
  3. java api 已取消到该网页的导航问题
  4. ansible的安装
  5. (已解决)vue数组添加数据后页面无法实时渲染
  6. 怎么篡改网站html文件,首页被篡改-当我打开网页时,总是被其他网页给篡改了,我该怎么办? 爱问知识人...
  7. IIS站点出现503错误。
  8. Win10应用商店被卸载的恢复方法
  9. 廊坊金彩教育:怎么做好人群标签
  10. 【基于IPD的产品开发体系】推行实践