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 相关文章推荐
类之Prototype.js学习
Jun 13 Javascript
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
Feb 10 Javascript
浅析vue-router原理
Oct 19 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
js实现tab栏切换效果
Aug 02 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图像处理类库及演示分享
2015/05/17 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
10个php函数实用却不常见
2015/10/13 PHP
yii添删改查实例
2015/11/16 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
python树莓派红外反射传感器
2019/01/21 Python
python分数表示方式和写法
2019/06/26 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Python celery原理及运行流程解析
2020/06/13 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
小学生演讲稿大全
2014/04/25 职场文书
结婚保证书范文
2014/04/29 职场文书
颐和园导游词
2015/01/30 职场文书
青年志愿者活动感想
2015/08/07 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python