问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

黄金螺旋构图有什么美的?

发布网友 发布时间:2022-04-23 01:57

我来回答

1个回答

懂视网 时间:2022-04-23 02:25

这次给大家带来p5.js实现黄金螺旋动画,p5.js实现黄金螺旋动画的注意事项有哪些,下面就是实战案例,一起来看一下。

效果如下:

主要方法

  1. translate()

  2. rotate()

  3. arc()

斐波那契螺旋

斐波那契螺旋线也称“黄金螺旋”,是根据斐波那契数列画出来的螺旋曲线,以斐波那契数为边的正方形中画一个90度的扇形,连起来的弧线就是斐波那契螺旋。

草图

过程分解

一、定义一个空的斐波那契数组:

var Fibonacci = [];

二、初始化

默认情况下draw()函数会无限重复绘图, frameRate()函数可以设置每秒重复绘图的次数,就像电影每秒播放的帧数。

function setup(){
 createCanvas(windowWidth, windowHeight);//创建一块画板,画板的宽高与浏览器宽高相同
 background(255);//设置背景颜色为白色
 frameRate(10);//设置每秒10帧
}

三、设置斐波那契螺旋的样式

function draw(){
 ...
 stroke(0);//线条颜色为黑色
 noFill();//无填充色
 strokeWeight(5);//线条宽度为5
 translate(windowWidth/2, windowHeight/2);//将坐标系移动到页面中央
 ...
}

四、开始绘制斐波那契螺旋

function draw(){
 ...
 stroke(0);
 noFill();
 strokeWeight(5);
 translate(windowWidth/2, windowHeight/2);
 ...
 for( var i = 0; i < 20; i ++){//绘制20段90度弧线
 var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];
//这是条件表达式,如果i等于0或1,那么a等于1;否则等于斐波那契数列前两项的和
 Fibonacci.push(a);//将新得到的a加入斐波那契数列中
 arc(0,0,a * 2,a * 2,0,PI / 2);//绘制圆心在(0,0)直径为2*a度数为90度的弧形
 /**********以下是为下一段弧线做准备************/
 rotate(PI / 2);//将坐标系按顺时针旋转90度
 translate(-Fibonacci[i-1],0); //将坐标系沿着X轴反向移动上一项的长度
 } 
}

五、让斐波那契螺旋动起来

function draw(){
 background(255);//将背景设置成白色,“遮盖”之前的绘图
 stroke(0);
 noFill();
 strokeWeight(5);
 translate(windowWidth/2, windowHeight/2);
 rotate(-PI / 6 * frameCount);//每帧旋转30度,frameCount表示当前已播放帧数
 for( var i = 0; i < 20; i ++){
 var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];
 Fibonacci.push(a);
 arc(0,0,a * 2,a * 2,0,PI / 2);
 rotate(PI / 2);
 translate(-Fibonacci[i-1],0); 
 } 
}

完整代码

var Fibonacci = [];
function setup(){
 createCanvas(windowWidth, windowHeight);
 background(255);
 frameRate(10);
}
function draw(){
 background(255);
 stroke(0);
 noFill();
 strokeWeight(5);
 translate(windowWidth/2, windowHeight/2);
 rotate(-PI / 6 * frameCount);
 for( var i = 0; i < 20; i ++){
 var a = i <= 1 ? 1 : Fibonacci[i-1] + Fibonacci[i-2];
 Fibonacci.push(a);
 arc(0,0,a * 2,a * 2,0,PI / 2);
 rotate(PI / 2);
 translate(-Fibonacci[i-1],0); 
 } 
}
function windowResized(){
 resizeCanvas(windowWidth, windowHeight);
}

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

模糊框内使用WebUploader步骤详解

Vue.js里computed使用案例详解

使用selectpicker下拉框案例分析

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 干鱼干银鱼怎么炒好吃 顺丰快递,顺丰快递919539207841好像搞不懂怎么这样慢了 顺丰快弟单号440986845895 景县龙华镇顺丰快递在什么位置 顺丰快递顺丰快递龙华顺丰快递怎么杨啊顺丰快递 顺丰快递衡水市发龙华镇是直接发,还是得经过景县 深圳龙华观澜富士康这里有没有上门取件的快递公司?电话是多少?收费如何? 龙华大浪顺丰快递电话是多少 深圳龙华富士康北门有顺丰速运吗 我想寄快递 龙华共和新村哪里有顺丰快递服务点 急!求海口龙华区顺丰快递的具体地址 请问深圳龙华大浪顺丰快递的电话是多少 有谁知道顺丰快递龙华分公司的电话,知道的说下,谢谢 顺丰快递(长沙长沙龙华营业点)在哪 深圳龙华顺丰快递公司在那里?大神们帮帮忙 顺丰速运龙华集配站服务点是什么意思 求唯美小清新的两字或四字网名 小清新四字网名 四个字的网名,要唯美点的,男女都可以。谢谢了 张柏芝离婚了吗 红三鱼干怎么炒好吃 jojo奇妙冒险的第八部是谁画的? JOJO的奇妙冒险的人物刻画 我的笔记本是win10系统,机械硬盘,现在卡的不得了,刚开机,使用30分钟,得卡十分钟,我想换固态 勉县社保中心在哪 铜川市养老保险经办中心 鲨鱼如何驯服?有可能像动画片里面看到的坐在鲨鱼背上出海吗? 怎么才能驯服鲨鱼 法官骑骆驼穿越雪地办案,还有哪些动物能够被人驯化? 我的世界鲨鱼怎么驯服 怎样控制鲨鱼池的鲨鱼不咬人? 把鲨鱼翻过来,鲨鱼会饿死? 方舟手游鲨鱼怎么请求 猎人兽王新天赋可以驯服什么特殊宠物? 创造与魔法鲨鱼能去深海吗 生存战争除了可以驯马,骆驼和驴之外还可以驯么。。。 大学校园的告密,告密者能得到什么好处 房产证未下来该怎么过户? 发现同事和领导告密,我该和他挑明吗? 房产证未下来签定的买卖合同有效吗