为什么这不显示球在倾斜时移动?
我正在试图获得一个斜率函数,允许这个球在屏幕上移动,给定两个点和一个当前的x,但它不起作用。
这是p5.js:http://p5js.org
function graphY(num,cHI){
var GsetR = cHI-num;
return(GsetR);
};
function slope(x1,y1,x2,y2,ex){
var gg1 = x2-x1;
var gg2 = y2-y2;
var ggs = gg2/gg1;
return(graphY(ggs*ex));
};
function setup() {
createCanvas(1000,650);
}
var slipX= 100;
var slipY= 500;
function draw() {
background(204);
fill(0,0,0);
ellipse(slipX,slipY,20,20);
slipY = slope(100,500,200,400,slipX);
slipX++;
text(slipY,20,20);
}
如果这不是我应该怎么做的话。 (我看到了一些关于向量的东西,但没有理解)然后我该怎么做? (它可以在最短的路径上将物体从一个点移动到另一个点。)
答案 0 :(得分:0)
您的代码中存在一些简单的问题,可以通过逐步查看每个函数来解决。使用调试器或在战略位置放置console.log()
语句是弄清楚错误的好方法。例如,如果您对slope
功能执行此操作,则会发现您的错误:
function slope(x1,y1,x2,y2,ex){
var gg1 = x2-x1;
var gg2 = y2-y2;
var ggs = gg2/gg1;
console.log(ggs) // <-- why is ggs always zero??
// Maybe a typo in gg2 (should probably be y2 - y1)
return(graphY(ggs*ex));
};
或:
function graphY(num,cHI){
var GsetR = cHI-num;
console.log(GsetR) // <-- why is this NaN
return(GsetR);
};
graphY()
有两个参数:num
和cHI
。但是你用slope()
中的一个来调用它。这使得graphY()
NaN
的返回值(不是数字)。
这些大多只是拼写错误所以这个帖子可能会在某个时候关闭,但我希望这会让你指向正确的方向。