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 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
javascript常用对话框小集
Sep 13 Javascript
javascript从右边截取指定字符串的三种实现方法
Nov 29 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
jquery中 $.expr使用实例介绍
Jun 09 Javascript
js点击选择文本的方法
Feb 09 Javascript
AngularJS  $on、$emit和$broadcast的使用
Sep 05 Javascript
快速入门Vue
Dec 19 Javascript
vue 不使用select实现下拉框功能(推荐)
May 17 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 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
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP处理postfix邮件内容的方法
2015/06/16 PHP
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
微信小程序实现左滑动删除效果
2020/03/30 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
How TDD works
2012/09/30 面试题
2014年国培研修感言
2014/03/09 职场文书
单位活动策划方案
2014/08/17 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
个人售房合同协议书
2016/03/21 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
Java数据结构之堆(优先队列)
2022/05/20 Java/Android