WEBVTT 00:00:00.731 --> 00:00:02.859 欢迎来到本次Coding Challenge 00:00:03.238 --> 00:00:06.668 今天我会展示如何编写出这样的图案 99:59:59.999 --> 99:59:59.999 我准备在浏览器里用p5.js实现它 99:59:59.999 --> 99:59:59.999 这里展示的是我事先用processing写完的成果 99:59:59.999 --> 99:59:59.999 它的运行效率会更高,视频最后我们会简单地看看代码 99:59:59.999 --> 99:59:59.999 我不会从头开始讲 99:59:59.999 --> 99:59:59.999 所以如果你对二维Perlin Noise不太了解的话 99:59:59.999 --> 99:59:59.999 可以先去视频简介内找到并观看我的Perlin Noise系列视频 99:59:59.999 --> 99:59:59.999 欢迎回来!我将从这一段代码开始 99:59:59.999 --> 99:59:59.999 它能够输出这样的图像 99:59:59.999 --> 99:59:59.999 这张图使用了二维Perlin Noise 99:59:59.999 --> 99:59:59.999 将noise的值与每一个像素点的灰度值(Grayscale)对应 99:59:59.999 --> 99:59:59.999 不过我现在要做些不一样的事 99:59:59.999 --> 99:59:59.999 在一个像素组成的网格中 99:59:59.999 --> 99:59:59.999 这是一个分辨率很低的网格 99:59:59.999 --> 99:59:59.999 与之前对每个像素设定灰度值不同 99:59:59.999 --> 99:59:59.999 我想要的是在每个像素内有一个向量(Vector) 99:59:59.999 --> 99:59:59.999 每个向量的方向由Perlin Noise决定 99:59:59.999 --> 99:59:59.999 因为最终我想做的是把许多粒子放入这个被称作Flow Field的区域内 99:59:59.999 --> 99:59:59.999 使粒子跟随向量的方向运动 99:59:59.999 --> 99:59:59.999 我的第一个任务是将像素替换成向量 99:59:59.999 --> 99:59:59.999 我们来看看这如何实现 99:59:59.999 --> 99:59:59.999 我先用一个低分辨率的canvas来开始