Processing创意编程(入门篇)
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条件判断语法。
四、系统接口
鼠标位置
直接用mouseX
和mouseY
来表示鼠标坐标。
画布颜色和圆的位置、颜色跟随鼠标变化,示例代码:
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创意编程(入门篇)相关推荐
- MAYA API插件编程--入门篇
MAYA API插件编程--入门篇 作者:华文广 日期:2010.11.28 我们知道,MAYA是一个基于结点的插件式软件架构,这种开放式的软件架构是非常优秀的,它可以让用户非常方便 ...
- python机器人视觉编程——入门篇(下)
目录 1 全篇概要 2 图像的读取与运算基础 2.1图像的读取 2.1.1 从磁盘的图像(.jpg,.npg,.gif等等)读取 2.1.2 从摄像头里读取图像 2.2图像的运算 2.2.1 图像的数 ...
- Python少儿编程入门篇(2)算术运算和赋值运算
Python少儿编程小课堂(二) 入门篇(2)算术运算和赋值运算 标识符 就是一个名字,就好像我们每个人都有自己的名字一样,主要作用就给变量.函数.类.模块以及其他对象起名字. 命名规则 1. 标识符 ...
- Python少儿编程入门篇(3)比较运算和逻辑运算
Python少儿编程小课堂(三) 入门篇(3)比较运算和逻辑运算 运算符(2) 上一节课讲了算术运算符和赋值运算符,本节继续讲其它运算符: 比较运算符 ==.!=.>.<.>= .& ...
- python机器人视觉编程——入门篇(上)
目录 1 全篇概要(主要阅读对象及内容提要) 2 python知识点之--环境及依赖的库安装简述 2.1 Python开发环境安装 2.2 Python 机器视觉模块安装 2.3 写第一个Python ...
- 编程入门篇之零基础入门(通用)
为什么写这一篇? 编程一途,最难的莫过于入门.如果你想学,那么现在就开始,编程远没有想象中那么复杂. 从变量说起 2x + 1 = y 这是一个数学中的二元一次方程,其中x和y就是变量,在编程中的变量 ...
- Cookie编程入门篇
Cookie就是所谓的" 小甜饼" ,他最早出现是在Netscape Navigator .0中.Cookie其实就是由Web服务器创建的.将信息存储在计算机上的文件.那么为什么W ...
- Python异步编程入门篇
本人很懒,不想详细些过程,后续会更新代码也许,具体文章推荐链接 ---------深入理解Python异步编程-----–
- 【手把手带你刷题】-C语言编程入门篇(一)
大家好,我是深鱼~ 目录 前言: 在线OJ <1>什么是在线OJ <2>为啥训练在线OJ 1.实践出真知 2.我是大V 3.有容乃大 4.缩短二进制 5.反向输出一个四位数 6 ...
- JavaScript 函数式编程——入门指南
JavaScript 函数式编程 一.什么是函数式编程 **定义:**函数式编程是一种编程范式,将整个程序都由函数调用以及函数组合构成. 可以看成一条流水线,数据可以不断地从一个函数的输出流入另一个函 ...
最新文章
- Linus采访对Linux对git和对代码品味的理解
- Java面试题大全带答案 110道(持续更新)
- 一图读懂:中国科学院“基础研究十条”
- 教你打造一道超级防御的电脑防火墙
- 虚拟机系统的磁盘扩容妙招及案例
- 微软2011 Build大会:Windows 8盛大出场(转)
- 在电商界摸爬滚打10年,我学到这三点经验教训
- 0007-Reverse Integer(整数反转)
- linux系统的运行定义在,Linux系统运行级管理
- 最小延迟调度问题——贪心算法(C++实现)
- 线程池之ThreadPool与ForkJoinPool
- 小程序获取百度地图api
- 微信小程序云开发———云存储
- UG二次开发GRIP过滤
- 菜鸟成长手册:路由器技术深入剖解
- linux 修改键盘键值
- ncbi爬虫geneID注释
- excel合并多个工作表_这三个公式,可以帮您合并任意多个Excel工作表
- 接口技术实验:七段码显示
- android系统代码行数,鸿蒙用460万行的代码量,实现安卓1525万行代码实现的所有功能...