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 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
JS限制上传图片大小不使用控件在本地实现
Dec 19 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
js常用的继承--组合式继承
Mar 06 Javascript
详解node中创建服务进程
May 09 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
详解如何使用babel进行es6文件的编译
May 29 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 5.0创建图形的巧妙方法
2010/10/12 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
php检查页面是否被百度收录
2015/10/28 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python读取几个G的csv文件方法
2019/01/07 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
财务与信息服务专业推荐信
2013/11/28 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
洗发露广告词
2014/03/14 职场文书
妇联主席先进事迹
2014/05/18 职场文书
五四青年节演讲稿
2014/05/26 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
周末问候语大全
2015/11/10 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android