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 相关文章推荐
JS 强制设为首页的代码
Jan 31 Javascript
Extjs407 getValue()和getRawValue()区别介绍
May 21 Javascript
JavaScript控制table某列不显示的方法
Mar 16 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
javaScript给元素添加多个class的简单实现
Jul 20 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
js的三种继承方式详解
Jan 21 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 Javascript
原生js的ajax和解决跨域的jsonp(实例讲解)
Oct 16 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 Javascript
关于Vue中的options选项
Mar 22 Vue.js
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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
php 注释规范
2012/03/29 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
给Function做的OOP扩展
2009/05/07 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
Node.js的特点详解
2017/02/03 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
Python中join和split用法实例
2015/04/14 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python 多线程Threading初学教程
2017/08/22 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
大学生活感想
2015/08/10 职场文书
终止合同协议书范本
2016/03/22 职场文书
修辞手法有哪些?
2019/08/29 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
python对文档中元素删除,替换操作
2022/04/02 Python
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers