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控制框架刷新
Aug 01 Javascript
javascript 硬盘序列号+其它硬件信息
Dec 23 Javascript
SWFObject 2.1以上版本语法介绍
Jul 10 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
在vue中实现给每个页面顶部设置title
Jul 29 Javascript
js实现上传图片到服务器
Apr 11 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 _autoload自动加载类与机制分析
2012/02/10 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
Django框架多表查询实例分析
2018/07/04 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
python 实现逻辑回归
2020/12/30 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
课程改革实施方案
2014/03/16 职场文书
大二学习计划书范文
2014/04/27 职场文书
继承公证书格式
2015/01/26 职场文书
2015年实习单位评语
2015/03/25 职场文书
拖欠货款起诉状
2015/05/20 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书