p5.js绘制旋转的正方形


Posted in Javascript onOctober 23, 2019

使用p5.js绘制旋转的正方形,供大家参考,具体内容如下

要还原的效果图

p5.js绘制旋转的正方形

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

首先建立画布大小,按照比例应该是5:3

function setup() {
 createCanvas(500, 300);
}

设定矩形绘制格式,以及边线粗细

function setup() {
 createCanvas(500, 300);
 rectMode(100);
 strokeWeight(4);
}

让我们根据画布坐标先把静态的图形画出来

(关于颜色的rgb数据可以通过ps取色器获得)

只需要用到rect()进行绘制即可

p5.js绘制旋转的正方形

仔细观察可以发现,图中的矩形为圆角矩形,绘制圆角矩形可以直接在rect()里加入四个角的弧度
以左一黑色矩形为例

rect(77.5,122.5, 55, 55, [5], [5], [5], [5]);

[ ]里的则是每个角的圆角弧度,按顺序分别是左上,右上,左下,右下

经过修改后的图像

p5.js绘制旋转的正方形

目前基本图形已经构建好了,目前我们需要做的就是让他旋转起来
这里需要用到几个函数

translate()
rotate()

我们用translate()将旋转中心设定为矩形中心,再调用rotate()让图像旋转起来
但是我们会发现一个问题,经过设定后,启动程序,我们会发现整个图形进行了旋转,这并没有达到我们想要的效果,所以现在需要使用到push()和pop()两个函数将矩形分隔开来

push();
angle=angle+0.01;
let c=angle+PI;
translate(100,150);
rotate(c);
stroke(255,255,255);
fill(0,0,0);
rect(-22.5-22.5, 55, 55, [5], [5], [5], [5]);
pop();

运行即可让左边第一个矩形旋转起来。要介绍的是,angle后所加的数值(此处为0.01)所代表的含义为旋转速率的大小

如果需要反向旋转,将rotate()中的参数转换为负数即可

按照第一个矩形将另外三个矩形也更改过来,就可以得到图中的效果啦!

最后完成的效果↓

p5.js绘制旋转的正方形

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

Javascript 相关文章推荐
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
基于jQuery实现点击同时更改两个iframe的网址
Jul 01 Javascript
JS小游戏之宇宙战机源码详解
Sep 25 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
js实现右键菜单功能
Nov 28 Javascript
php register_shutdown_function函数详解
Jul 23 Javascript
javascript观察者模式实现自动刷新效果
Sep 05 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
p5.js实现简单货车运动动画
Oct 23 #Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 #Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 #Javascript
p5.js临摹旋转爱心
Oct 23 #Javascript
JavaScript 作用域scope简单汇总
Oct 23 #Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 #Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 #jQuery
You might like
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP加密解密函数详解
2015/10/28 PHP
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Python Requests库基本用法示例
2018/08/20 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
new修饰符是起什么作用
2015/06/28 面试题
业务主管岗位职责范本
2013/12/25 职场文书
开办饭店创业计划书
2013/12/28 职场文书
小学家长评语大全
2014/04/16 职场文书
中等生评语大全
2014/05/04 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
作风转变年心得体会
2014/10/22 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
个人催款函范文
2015/06/24 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书