这是用p5.js
/ processing编写的。我的问题是,所有函数调用都是从起点开始,当它应该更新到旧点时
var aslider, lslider, sslider, newx, newy;
function setup() {
createCanvas(300,300);
aslider = createSlider(1,359,17); #angle
lslider = createSlider(1,50,10); #length
sslider = createSlider(1,50,20); #amount of side
}
function draw() {
var angle = aslider.value();
var length = lslider.value();
var size = sslider.value();
var startx = 100;
var starty = 100;
var radians = angle * (Math.PI/180);
for (var i = 0; i < size; i++) {
newx = Math.cos(radians) * length + startx;
newy = Math.sin(radians) * length + starty;
line(startx, starty, newx, newy);
startx = newx; #not changing
starty = newy; #not changing
}
}
答案 0 :(得分:0)
您的startx
和starty
变量似乎没有变化的原因是因为它们位于draw()
函数中。 draw()
函数本质上就像while(true)
循环一样,并且会一直调用自己,直到您停止运行代码。您在draw()
:
var startx = 100;
var starty = 100;
这将导致每次调用draw时都会重置变量,这是所有时间。因此,变量看起来似乎没有变化。要解决此问题,只需声明并初始定义startx
和starty
以上setup()
,这将使这些变量成为全局变量,并阻止draw()
中发生的重新定义。