Почему самодельная функция уклона не работает

Почему это не отображает шар, движущийся с уклоном?

Я пытаюсь получить функцию наклона, чтобы позволить этому шару перемещаться по экрану, учитывая две точки и текущий х, но это не работает.

это 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 ответ

Решение

В вашем коде есть несколько простых проблем, которые можно решить, пройдя по каждой функции. Использование отладчика или размещение 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 (не номер).

Это в основном просто опечатки, так что эта тема, вероятно, будет закрыта в какой-то момент, но я надеюсь, что это укажет вам правильное направление.

Другие вопросы по тегам