初学者关于p5js print()函数的问题
Beginners' question on p5js print() function
我在 GitHub 上看到了一些已关闭的帖子,偶尔在 returns 上看到了类似的未解决问题,但我可以很好地解释为什么在 print()
上已定义对象的命令对象正在循环打印在控制台上:
刚开始用p5js,不懂javascript。所以它可能是放置命令的地方(function setup()
或 function draw()
),我仍然不确定为什么它们默认在编辑器起始页上,否则我需要指定我想要打印结果就一次 (?).
发生这种情况是因为 draw()
在循环中运行。在幕后,p5js library is using requestAnimationFrame
调用draw()
。
您可以将 print
语句移动到 setup()
函数中,该函数仅在脚本开始时运行一次。
function setup() {
createCanvas(400, 400);
c = createVector(0,0);
print(c.toString());
}
function draw() {
//print(c.toString());
background(220);
}
或者,如果您愿意,可以按如下方式设置条件打印块:
var printed = false;
function setup() {
createCanvas(400, 400);
c = createVector(0,0);
//print(c.toString());
}
function draw() {
if (!printed) {
print(c.toString());
printed = true;
}
background(220);
}
注意:还可以考虑使用 toString
method in the p5.Vector
对象以获得更清晰的输出。
如果您需要从 draw()
函数中调用的函数获取输出,您可以应用以下相同的原则:
var printed = false;
function setup(){
createCanvas(400, 400);
c = createVector(0,0);
print(c);
}
function draw() {
background(220);
}
function beingCalledWithinDraw(){
if (!printed) {
print(c);
printed = true;
}
}
可运行示例:
var printed = false;
function setup() {
createCanvas(400, 400);
c = createVector(0, 0);
//print(c.toString());
}
function draw() {
background(220);
beingCalledWithinDraw();
}
function beingCalledWithinDraw() {
if (!printed) {
print(c.toString());
printed = true;
}
}
<script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.min.js"></script>
我在 GitHub 上看到了一些已关闭的帖子,偶尔在 returns 上看到了类似的未解决问题,但我可以很好地解释为什么在 print()
上已定义对象的命令对象正在循环打印在控制台上:
刚开始用p5js,不懂javascript。所以它可能是放置命令的地方(function setup()
或 function draw()
),我仍然不确定为什么它们默认在编辑器起始页上,否则我需要指定我想要打印结果就一次 (?).
发生这种情况是因为 draw()
在循环中运行。在幕后,p5js library is using requestAnimationFrame
调用draw()
。
您可以将 print
语句移动到 setup()
函数中,该函数仅在脚本开始时运行一次。
function setup() {
createCanvas(400, 400);
c = createVector(0,0);
print(c.toString());
}
function draw() {
//print(c.toString());
background(220);
}
或者,如果您愿意,可以按如下方式设置条件打印块:
var printed = false;
function setup() {
createCanvas(400, 400);
c = createVector(0,0);
//print(c.toString());
}
function draw() {
if (!printed) {
print(c.toString());
printed = true;
}
background(220);
}
注意:还可以考虑使用 toString
method in the p5.Vector
对象以获得更清晰的输出。
如果您需要从 draw()
函数中调用的函数获取输出,您可以应用以下相同的原则:
var printed = false;
function setup(){
createCanvas(400, 400);
c = createVector(0,0);
print(c);
}
function draw() {
background(220);
}
function beingCalledWithinDraw(){
if (!printed) {
print(c);
printed = true;
}
}
可运行示例:
var printed = false;
function setup() {
createCanvas(400, 400);
c = createVector(0, 0);
//print(c.toString());
}
function draw() {
background(220);
beingCalledWithinDraw();
}
function beingCalledWithinDraw() {
if (!printed) {
print(c.toString());
printed = true;
}
}
<script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.min.js"></script>