p5.js入门教程和基本形状绘制


Posted in Javascript onMarch 15, 2018

一、什么是p5.js

最近接触了一门数字媒体艺术类的课程,名为Interactivity,教的是p5.js。

主讲老师就是开发者之一……还是挺激动的。

p5.js是一个为艺术家、设计师而开发的Javascript库,可以看作是Processing的Web版本。如果有Processing学习经验的话,p5.js上手会非常快。

至于p5.js有什么用,这个问题很难回答,因为我本身也是个初学者。

我目前觉得p5.js是一个很好的激发创意的工具,并且你可以将p5.js的内容嵌入网页,让你的网站更炫。

二、使用p5.js

p5.js拥有在线的代码编辑器,网址如下:

http://alpha.editor.p5js.org/

左边输入代码,点击运行按钮,就可以在右边看到代码运行效果。

你可以注册一个p5.js帐号,每次你的代码都可以保存在官方网站,无论是修改、测试或展示都十分方便。

下图是用ellipse()函数画了一个圆:

p5.js入门教程和基本形状绘制

三、上手p5.js

当你新建了一个p5.js工程后,便会生成以下的代码:

function setup() { //setup函数,每次程序开始运行时执行一次,用于初始化。 
 createCanvas(400, 400);//生成一个400x400的画布 
}  
function draw() { //draw函数,每秒运行60次,不断地在画布上绘制图形 
 background(220);//绘制背景,颜色为RGB(220,220,220) 
}

p5.js程序总是从setup()开始执行,执行过一次setup()后,便进入draw()函数的不断循环调用。

可以发现,语法和JavaScript并没有什么太大的不同,只是多了很多特殊的函数以供调用罢了。

四、绘制基本图形

在p5.js中,绘制图形是件很容易的事情,有很多相关函数:

function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
  ellipse(100,100,100,100);//绘制椭圆(x,y,宽,高) 
  triangle(150,150,150,200,200,200);//绘制三角形(x1,y1,x2,y2,x3,y3) 
  quad(180,100,200,150,270,150,250,100);//绘制四边形(x1,y1,x2,y2,x3,y3,x4,y4) 
  rect(30, 20, 50, 50);//绘制矩形(x,y,宽,高) 
  line(0,0,100,100);//绘制线段(x1,y1,x2,y2)起点至终点 
  arc(200, 50, 50, 50, 0, HALF_PI);//绘制弧(x,y,宽,高,起始角度,终止角度) 
}

效果如下图所示:

p5.js入门教程和基本形状绘制

当然,线条色和填充色都是可以替换的,也可以修改线条粗细:

function setup() {  
 createCanvas(400, 400); 
}  
 
function draw() {  
 background(220); 
   
  stroke(255,128,128); 
  strokeWeight(5); 
  fill(255,200,0); 
  ellipse(100,100,100,100); 
  triangle(150,150,150,200,200,200); 
   
  noStroke(); 
  fill(100,255,0); 
  quad(180,100,200,150,270,150,250,100); 
  rect(30, 20, 50, 50); 
   
  stroke(0); 
  line(0,0,100,100); 
  arc(200, 50, 50, 50, 0, HALF_PI); 
}

效果如下图所示:

p5.js入门教程和基本形状绘制

五、查阅Reference

p5.js提供了许多函数用来进行创作,并且许多函数都有多种重载函数,这里不一一讲解。

p5.js官网提供了Reference,对每一种函数都进行了详细的解释,可以通过查阅这些函数的用法来进一步学习p5.js,网址如下:

https://p5js.org/reference/

p5.js入门教程和基本形状绘制

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
TinyMCE 新增本地图片上传功能
Nov 05 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
Vue组件之自定义事件的功能图解
Feb 01 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
Nov 25 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
Mar 15 #Javascript
vue之浏览器存储方法封装实例
Mar 15 #Javascript
vue实现提示保存后退出的方法
Mar 15 #Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 #Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 #Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 #Javascript
iview中Select 选择器多选校验方法
Mar 15 #Javascript
You might like
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
微信小程序自定义组件
2017/08/16 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
python3操作mysql数据库的方法
2017/06/23 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
在Pycharm中自动添加时间日期作者等信息的方法
2019/01/16 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Python实现手绘图效果实例分享
2020/07/22 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
公司员工活动策划方案
2014/08/20 职场文书
用电申请报告范文
2015/05/18 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书