Пе́рвая косми́ческая ско́рость (кругова́я ско́рость) — минимальная (для заданной высоты над поверхностью планеты) горизонтальная скорость, которую необходимо придать объекту, чтобы он совершал движение по круговой орбите вокруг планеты и не начал падать [1]. Первая космическая скорость для орбиты, расположенной вблизи поверхности Земли, составляет 7,91 км/с[2]. Впервые была достигнута космическим аппаратом СССР 4 октября 1957 г. (первый искусственный спутник)[3].
// вычисляем вектор движения
const q = this.speed/this.dist;
this.dx = this.y*q;
this.dy = -this.x*q;
// находим вектор силы притяжения
this.tdx = -this.x*this.gravity/dist;
this.tdy = -this.y*this.gravity/dist;
Может при какой-то скорости эллипс станет неотличим от окружности.
ожидаемый результат - движение тела по эллиптической орбите.
Все тела в космосе так и летают.
Более того, даже этот сдвиг эллипса на каждом круге - это то что происходит в реальности.
в первом приближении да, это шар. Я думаю, речь идёт об идеальном случае, когда существует только сила притяжения и только для тела (масса и размеры тела пренебрежимо малы) + начальное ускорение.
И автор рассчитывает ее, только у него G равно единице, хотя она конечно потом в расчете силы притяжения тоже участвует.
В общем надо аккуратно все проверять, времени столько нет :)
Вектор движения вот странно как-то рассчитывается, и на глаз видно что тело летит криво изначально
for(j = 0;j < 1000;j++){...}
и во вложенном цикле (for(j in blocks){...}
for(j in blocks){...}
for(j = 0;j < 1000;j++){...}
и for(j in blocks){...}
а во вторых избавит от необходимости запоминать значение длинны луча в range, и как следствие вам не надо будет пересчитывать отдельно концы лучей.
убрал в своем варианте корень и все заработало как надо ))))