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 相关文章推荐
js 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
JavaScript Promise启示录
Aug 12 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
Nov 02 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 Javascript
JavaScript中的全局对象介绍
Jan 01 Javascript
关于cookie的初识和运用(js和jq)
Apr 07 Javascript
解析JavaScript数组方法reduce
Dec 12 Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
Vue中key的作用示例代码详解
Jun 10 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 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
基于文本的留言簿
2006/10/09 PHP
PHP面向对象法则
2012/02/23 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
PHP培训要多少钱
2017/06/06 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP使用函数用法详解
2018/09/30 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
javascript dom 基本操作小结
2010/04/11 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
js中apply与call简单用法详解
2017/11/06 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Python实现的矩阵类实例
2017/08/22 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
在python中做正态性检验示例
2019/12/09 Python
用python实现名片管理系统
2020/06/18 Python
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
党员的自我评价范文
2014/01/02 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
学校师德师风整改方案
2014/10/28 职场文书
运输公司工作总结
2015/08/11 职场文书
导游词之江南周庄
2019/12/06 职场文书
golang 实现Location跳转方式
2021/05/02 Golang