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 option location 页面跳转实现代码
Dec 27 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
Nov 02 Javascript
一个轻量级的javascript库 pj介绍
Dec 19 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
May 07 Javascript
javascript处理表单示例(javascript提交表单)
Apr 28 Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
Nov 17 Javascript
深入浅析javascript中的作用域(推荐)
Jul 19 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
Jan 18 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 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目录函数实现创建、读取目录教程实例
2011/01/13 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP使用函数用法详解
2018/09/30 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python 命名规范知识点汇总
2020/02/14 Python
Python函数参数分类原理详解
2020/05/28 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
实习教师自我鉴定
2013/09/27 职场文书
家长会主持词开场白
2014/03/18 职场文书
中学生操行评语
2014/04/24 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
2014年护士长工作总结
2014/11/11 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
2015年电工工作总结
2015/04/10 职场文书
导游词之镜泊湖
2019/12/09 职场文书