процентная функция с положительными или отрицательными числами

#javascript #math #geometry

#javascript #математика #геометрия

Вопрос:

Я не смог найти этот вопрос здесь, хотя он кажется простым.

допустим, я хочу вычислить процент от общего расстояния, когда я знаю начальную и конечную позиции, т.Е.:

 function getPercentage(startpos,endpos,currentpos)
{
     var distance = endpos-startpos;
     return (currentpos/distance)*100;
}
  

легко, но уже очень поздно, кофе не работает что произойдет, если startpos или текущий pos находится на отрицательной оси, т.Е.

 startpos = -734;
endpos = 65;
currentpos = -38;
  

стоит отметить, что любая позиция может находиться либо на положительной, либо на отрицательной оси в любой точке.

на каком проценте расстояния находится currentpos…. Кто-нибудь может бросить мне кость, пожалуйста, сейчас 1 час ночи 🙂

Ответ №1:

Вы забыли также перевести текущую позицию.

 function getPercentage(startpos, endpos, currentpos)
{
     var distance = endpos - startpos;
     var displacement = currentpos - startpos;
     return (displacement / distance) * 100;
}
  

Ответ №2:

Простая вещь, которую можно сделать, это сместить позиции так, чтобы startpos стал нулевым:

 endpos = endpos - startpos;
currentpos = currentpos - startpos;
var perc = currentpos/endpos*100;