为什么自制斜坡功能不起作用

时间:2018-05-04 22:07:15

标签: javascript html processing p5.js

为什么这不显示球在倾斜时移动?

我正在试图获得一个斜率函数,允许这个球在屏幕上移动,给定两个点和一个当前的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);  
}

如果这不是我应该怎么做的话。 (我看到了一些关于向量的东西,但没有理解)然后我该怎么做? (它可以在最短的路径上将物体从一个点移动到另一个点。)

1 个答案:

答案 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()有两个参数:numcHI。但是你用slope()中的一个来调用它。这使得graphY() NaN的返回值(不是数字)。

这些大多只是拼写错误所以这个帖子可能会在某个时候关闭,但我希望这会让你指向正确的方向。