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 相关文章推荐
JS关键字变色实现思路及代码
Feb 21 Javascript
JS实现的省份级联实例代码
Jun 24 Javascript
javascript中数组的sort()方法的使用介绍
Dec 18 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
May 10 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
JavaScript引用类型RegExp基本用法详解
Aug 09 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 Javascript
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
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
JAVA/JSP学习系列之六
2006/10/09 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP多例模式介绍
2013/06/24 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
原生js实现抽奖小游戏
2019/06/27 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
提升Python程序性能的7个习惯
2019/04/14 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
python中判断文件结束符的具体方法
2020/08/04 Python
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
劳动模范事迹材料
2014/01/19 职场文书
班级寄语大全
2014/04/10 职场文书
安全责任书模板
2014/07/22 职场文书
年检委托书
2014/08/30 职场文书
材料采购员岗位职责
2015/04/03 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python