Как я могу правильно сгенерировать параболу

#javascript #calculator #algebra #procedural-generation

#javascript #калькулятор #алгебра #процедурная генерация

Вопрос:

Я работаю над ванильной игрой на JavaScript и использую массив для сохраненных высот по оси y. Моя проблема в том, что в рамках моей генерации высоты я хочу создать биом с холмами. Это требует от меня использования парабол, чтобы я мог правильно генерировать кривые. Каждая единица X фиксирована как график, но координаты y могут быть изменены.

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

 function constructMountains(spot, last, gradient) {
  var randomHeight = (Math.random() * 1.5) 0.3;//creats a random intensity for the parabola
  var lengthOfHill = Math.floor(Math.random() * 35) 4;// creates a random width for parabola
  var parabolaVertexY = (-randomHeight*((q-lengthOfHill/2)-(lengthOfHill/2))^2) last;//gets max height of curve
  for (var q = 0; q <= lengthOfHill; q  ) {
    test[q spot] = (-randomHeight*((q-lengthOfHill/2)-(lengthOfHill/2))^2) parabolaVertexY;//vertex is half way through so half the length is the iterator's offset
  }
  return spot lengthOfHill;//returns place in the main loop
}

  var biome = 1
  for (x=0; x<blockAmount   101   1000; x  ) {
    //set up this way for testing
    if (x == 0) {
      x = constructMountains(x, 45, toggleGradient);//toggleGradient will be used to flip curve, not implemented yet
    }
  }
  

Это должно создавать повторяющиеся параболы разных размеров. Данные можно передавать визуально, потому что у меня есть функция, которая использует холст HTML5 для обводки () значений координат. То, как он ведет себя в настоящее время, не имеет абсолютно никакого смысла.

Комментарии:

1. У вас действительно есть вопрос?

Ответ №1:

a^b является побитовым XOR; не возведение в степень в Javascript. Вы ищете Math.pow(a,b) .