javascript - p5.js 的绘图功能是如何工作的?
问题描述
无法弄清楚我做错了什么。查看下面的代码,我的逻辑是每次调用draw函数时,椭圆的坐标都会更改为另一个随机数。
但是,不是更改坐标,而是在“新”坐标处重新绘制椭圆。
有没有人愿意解释为什么形状被重绘而不是移动?我正在使用 p5 javascript 库。
var frate = 10;
var elliX = 500;
var elliY = 400;
function setup() {
createCanvas(100, 100);
frameRate(frate);
}
function draw() {
elliX = (random(0,100));
elliY = (random(0,100));
ellipse(elliX, elliY, 30);
}
解决方案
p5 默认情况下不会清除画布,因此每次绘制时它都会添加一个新圆圈。要清除,您可以clear()
事先调用,如下所示:
var frate = 10;
var elliX = 500;
var elliY = 400;
function setup() {
createCanvas(100, 100);
frameRate(frate);
}
function draw() {
clear();
elliX = (random(0,100));
elliY = (random(0,100));
ellipse(elliX, elliY, 30);
}
<script src="https://unpkg.com/p5@0.6.1/lib/p5.min.js"></script>
推荐阅读
- android - Android Studio KMM iOS 运行不会在 iPhone 模拟器中启动
- r - Rvest 返回空值,不知道为什么
- javascript - switch 语句在 JavaScript 中不起作用
- airflow - 如何根据之前的任务状态触发任务?
- reactjs - 如何修复错误:对象作为 React 子对象无效(找到:带有键 {} 的对象)
- python - 如何在 Python 中对以下编码场景进行编码?
- javascript - 如何使用正则表达式提取没有路径参数或查询参数的 url 的相对路径?
- visual-studio-code - VSCode 在 OS 更新后以黑底灰显示代码
- pyspark - 如何将字符串附加到pyspark中列出的数据框列
- python - 无法加载请求的 DLL 找不到指定的模块