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 相关文章推荐
jquery创建div 实现代码
Apr 27 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
用JS中split方法实现彩色文字背景效果实例
Aug 24 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
Angular中的$watch、$watchGroup、$watchCollection
Jun 25 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
详谈构造函数加括号与不加括号的区别
Oct 26 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
May 09 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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
使用PHP编写发红包程序
2015/07/22 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
原生js生成图片验证码
2020/10/11 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
python中的格式化输出用法总结
2016/07/28 Python
python查看列的唯一值方法
2018/07/17 Python
python实现Virginia无密钥解密
2019/03/20 Python
python如何实现异步调用函数执行
2019/07/08 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
Flask处理Web表单的实现方法
2021/01/31 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2014年服务员工作总结
2014/11/18 职场文书
信用卡工作证明范本
2015/06/19 职场文书
靠谱准确的求职信
2019/04/02 职场文书