p5.js - 改变两条代码行的顺序会改变绘制正方形的行为
p5.js - changing order of two code lines changes behaviour of drawing squares
我对 p5.js
有一个奇怪的问题。基本上,有一个重力源(红色方块)和一个围绕红色方块运行的蓝色方块(在代码中称为像素)。 proc()
函数在时间上迈出一步并进行两个对象的物理,而 draw()
函数只绘制这两个正方形。问题是关于我的 sketch.js 文件。当它是有序的:
env.draw();
env.proc();
它运作良好,但当它:
env.proc();
env.draw();
它的工作方式很奇怪。
以下是快速预览:
工作良好:http://home.elka.pw.edu.pl/~eprokopc/goodGrav/index.html
工作不顺利:
http://home.elka.pw.edu.pl/~eprokopc/badGrav/index.html
Github 回购:
https://github.com/kekore/BadGravity
两个示例仅在 sketch.js
中的那两行顺序不同。我很好奇为什么方块是这样画的
根据调用 draw 和 proc 的位置更改大小的 "weird" 行为是由从 Vector class 调用 scaleTo 引起的。 Vector scaleTo 调用 scale 调用 p5 scale 函数,即使 Vector 有自己的 scale 函数。
class Vector{
constructor(initX,initY){
this.x = initX;
this.y = initY;
}
scale(a){
this.x = this.x * a;
this.y = this.y * a;
}
scaleNC(a){
return new Vector(this.x*a,this.y*a);
}
scaleTo(len){
scale(len/this.length());
}
}
如果所需的行为是让 scaleTo 调用 Vector.scale 修改 scaleTo:
scaleTo(len){
this.scale(len/this.length());
}
我对 p5.js
有一个奇怪的问题。基本上,有一个重力源(红色方块)和一个围绕红色方块运行的蓝色方块(在代码中称为像素)。 proc()
函数在时间上迈出一步并进行两个对象的物理,而 draw()
函数只绘制这两个正方形。问题是关于我的 sketch.js 文件。当它是有序的:
env.draw();
env.proc();
它运作良好,但当它:
env.proc();
env.draw();
它的工作方式很奇怪。 以下是快速预览:
工作良好:http://home.elka.pw.edu.pl/~eprokopc/goodGrav/index.html
工作不顺利: http://home.elka.pw.edu.pl/~eprokopc/badGrav/index.html
Github 回购: https://github.com/kekore/BadGravity
两个示例仅在 sketch.js
中的那两行顺序不同。我很好奇为什么方块是这样画的
根据调用 draw 和 proc 的位置更改大小的 "weird" 行为是由从 Vector class 调用 scaleTo 引起的。 Vector scaleTo 调用 scale 调用 p5 scale 函数,即使 Vector 有自己的 scale 函数。
class Vector{
constructor(initX,initY){
this.x = initX;
this.y = initY;
}
scale(a){
this.x = this.x * a;
this.y = this.y * a;
}
scaleNC(a){
return new Vector(this.x*a,this.y*a);
}
scaleTo(len){
scale(len/this.length());
}
}
如果所需的行为是让 scaleTo 调用 Vector.scale 修改 scaleTo:
scaleTo(len){
this.scale(len/this.length());
}