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 相关文章推荐
JavaScript Event学习补遗 addEventSimple
Feb 11 Javascript
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
jQuery filter函数使用方法
May 19 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
May 24 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
Aug 02 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
微信小程序 弹幕功能简单实例
Feb 14 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
vue中在vuex的actions中请求数据实例
Nov 08 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 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
PHP7新特性
2021/03/09 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Python实现的计算器功能示例
2018/04/26 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python 修改列表中的元素方法
2018/06/26 Python
Python配置文件处理的方法教程
2019/08/29 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
高校毕业生自我鉴定
2013/10/27 职场文书
小学教师事迹材料
2014/01/13 职场文书
安全生产检查通报
2014/01/29 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
公司授权委托书范本
2014/09/18 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
赞美教师的句子
2019/09/02 职场文书
进行数据处理的6个 Python 代码块分享
2022/04/06 Python