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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
禁止选中文字兼容IE、Chrome、FF等
Sep 04 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
js微信分享API
Oct 11 Javascript
JavaScript函数基础详解
Feb 03 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
微信小程序实现评论功能
Nov 28 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
javascript实现滚动条效果
Mar 24 Javascript
浅谈JavaScript 声明提升
Sep 14 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
简单谈谈PHP vs Node.js
2015/07/17 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
javascript 必知必会之closure
2009/09/21 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
图解javascript作用域链
2019/05/27 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
python数组过滤实现方法
2015/07/27 Python
简单谈谈Python中的闭包
2016/11/30 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
上海中网科技笔试题
2012/02/19 面试题
开学典礼策划方案
2014/05/28 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
五年级作文之成长
2019/09/16 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js