使用 p5.js 绘制图形
创建时间 2019-04-18
更新时间 2022-05-31
关于五度圈
从官大为的 好和弦 中我看到了一个视频,讲了五度圈相关的东西。然后官大为发挥了一个程序员应有的主观能动性,自己手动用 javascript 画了一个五度圈。
我看了以下这个页面的原码,其中就有一个很重要的js文件 p5.js,几乎页面上所有能看到的东西都是用这个javascript包画出来的。所以对这个包产生了浓厚的兴趣。
这里是官方提供五度圈的页面 http://nicechord.com/circle/,也就是上面嵌入的页面。这里是官大为 github 上五度圈的仓库地址 https://github.com/wiwikuan/wiwi-circleOfFifths
特别感谢 官大为,从他的好和弦频道,我学到了好多关于作曲和编曲的干活知识。
p5.js
下面时官方的例子,我在窗口改变时改变了画布的大小,使得画布能够适应屏幕。
这里是画布尺寸信息:
附上相关的代码:
<div class="ui segments"> <div class="ui segment" id="sketch-holder"></div> <div class='ui segment'> <span>这里是画布尺寸信息:</span> <span class="status"></span> </div> </div> <script src="https://fastly.jsdelivr.net/npm/jquery@3.4.0/dist/jquery.min.js"></script> <script src="https://fastly.jsdelivr.net/npm/p5@0.8.0/lib/p5.min.js"></script>
function setup() { var width = $("#sketch-holder"). width(); var height = parseInt(width / 1.77); canvas = createCanvas(width, height); canvas.parent('sketch-holder'); $('.status').html(width + " " + height); } function draw() { if (mouseIsPressed) { fill(0); } else { fill(255); } ellipse(mouseX, mouseY, 80, 80); } function windowResized() { var width = $("#sketch-holder").width(); var height = parseInt(width / 1.77); resizeCanvas(width, height); $('.status').html(width + " " + height); }
后来我用它实现了,一些排序算法的演示:
http://blog.ccyg.studio/article/e518ad71-a442-4e97-b2a1-72a9c422b483
当然, p5.js 的功能要丰富的多,远远不止于此。剩下的等以后慢慢研究吧。
评论