Планета
В этом проекте реализован закон тяготения Ньютона и показано движение единственной Планеты вокруг Солнца под воздействием закона тяготения. Солнце изображено большим красным кружочком в середине Графической панели.
Так же, как и в случае Черепашки, состояние Планеты задаётся матрицей mm. Первый столбец матрицы задаёт положение Планеты, а второй столбец – её скорость. Согласно закону тяготения ускорение планеты определяется формулой:
a = Г*M/r2,
здесь M – масса Солнца, r – расстояние от Планеты до Солнца, Г – некоторая постоянная, называемая гравитационной постоянной. В каждый момент времени ускорение направлено в сторону Солнца. Проект позволяет произвольно задать начальное положение и начальную скорость Планеты: в нашем случае, как мы видим из выражения, определяющего матрицу mm Планеты, начальное положение Планеты определяется координатами x=4, y=0, а начальная скорость Планеты определяется координатами x=0.7, y=0.8. Далее через каждую миллисекунду программа вычисляет новое положение Планеты и новую скорость:
pair={x:,y:};
mm=pair(pair(4,0),pair(0.7,0.8));
p={l:mm,r:0.1,color:'black'};
sun=5;
planet=0.05;
d=0.05;
grav=function(z){
dis=z.x*z.x+z.y*z.y;
dist=math.sqrt(dis);
a=pair(-z.x*sun/dist/dis,-z.y*sun/dist/dis);
return(a);
}
draw.fillcircle(pair(0,0),0.6,'red');
id={i:0};
move=function(){
id.i=id.i+1;
draw.clear();
p.l.x.x=p.l.x.x+d*p.l.y.x;
p.l.x.y=p.l.x.y+d*p.l.y.y;
p.l.y.x=p.l.y.x+d*grav(p.l.x).x;
p.l.y.y=p.l.y.y+d*grav(p.l.x).y;
draw.fillcircle(p.l.x,p.r,p.color);
draw.fillcircle(pair(0,0),0.6,'red');
if(id.i>3000){
timer.stop(num);
}
}
num=timer.start(move,1);
В результате мы видим, что Планета движется по эллипсу, в одном из фокусов которого находится Солнце, что составляет, так называемый, Первый закон Кеплера. Скорость Планеты максимальна, когда Планета приближается к Солнцу и минимальна, когда Планета удалена от Солнца. Эта зависимость скорости Планеты от расстояния до Солнца сформулирована во Втором законе Кеплера.
a = Г*M/r2,
здесь M – масса Солнца, r – расстояние от Планеты до Солнца, Г – некоторая постоянная, называемая гравитационной постоянной. В каждый момент времени ускорение направлено в сторону Солнца. Проект позволяет произвольно задать начальное положение и начальную скорость Планеты: в нашем случае, как мы видим из выражения, определяющего матрицу mm Планеты, начальное положение Планеты определяется координатами x=4, y=0, а начальная скорость Планеты определяется координатами x=0.7, y=0.8. Далее через каждую миллисекунду программа вычисляет новое положение Планеты и новую скорость:
pair={x:,y:};
mm=pair(pair(4,0),pair(0.7,0.8));
p={l:mm,r:0.1,color:'black'};
sun=5;
planet=0.05;
d=0.05;
grav=function(z){
dis=z.x*z.x+z.y*z.y;
dist=math.sqrt(dis);
a=pair(-z.x*sun/dist/dis,-z.y*sun/dist/dis);
return(a);
}
draw.fillcircle(pair(0,0),0.6,'red');
id={i:0};
move=function(){
id.i=id.i+1;
draw.clear();
p.l.x.x=p.l.x.x+d*p.l.y.x;
p.l.x.y=p.l.x.y+d*p.l.y.y;
p.l.y.x=p.l.y.x+d*grav(p.l.x).x;
p.l.y.y=p.l.y.y+d*grav(p.l.x).y;
draw.fillcircle(p.l.x,p.r,p.color);
draw.fillcircle(pair(0,0),0.6,'red');
if(id.i>3000){
timer.stop(num);
}
}
num=timer.start(move,1);
В результате мы видим, что Планета движется по эллипсу, в одном из фокусов которого находится Солнце, что составляет, так называемый, Первый закон Кеплера. Скорость Планеты максимальна, когда Планета приближается к Солнцу и минимальна, когда Планета удалена от Солнца. Эта зависимость скорости Планеты от расстояния до Солнца сформулирована во Втором законе Кеплера.