Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //"Симулятор" полет луны вокруг Земли, версия 1
- //Траектория определяется 'наглядно', ибо я пока не все доделал.
- //1285 км в 1 пикселе (единице измерения)
- //значение integer (-2147483648..2147483647)
- uses graphABC;
- const W=800; H=620;
- var
- x0,y0,time:integer;
- {точки}x1,y1,x2,y2:real;
- SUNspeedX,SUNspeedY,speedX,speedY,speed,F,a,s,i:real;
- label endS;
- begin
- SetWindowCaption('Хоть кто-то читает название окон');//Устанавливает заголовок окна
- SetWindowSize(W,H);//Установка размеров окна;
- SetWindowIsFixedSize(true);//Устанавливает, можно но ли изменять размеры окна вручную (растягивать)
- CenterWindow;//Устанавливает окно по центру монитора.
- x0:=windowwidth div 2;{определяем центр экрана по Х}
- y0:=windowheight div 2;{определяем центр экрана по Y}
- //line(0,y0,windowwidth,y0);{чертим ось Х}
- //line(x0,0,x0,windowheight);{чертим ось Y}
- setpenwidth(3);{ширина текущего пера}
- circle(x0,y0,round(6400/200));
- speed:=1000;//начальная скорость луны
- x1:=0; y1:=300;
- x2:=585; y2:=300;
- for time:=0 to 30000 do begin
- sleep(5);
- {*10^23}F:=66754.5{гравитац.п 10^-11}*73477{луна 10^22}*59726{земля 10^24}/(sqrt((x1*1285*1285*x1+y1*1285*1285*y1))*sqrt((x1*x1*1285*1285+y1*1285*1285*y1)));//сила, с которой притягиваются два косм тела
- a:=F/7.3477;//ускорение луны 'к Земле'
- //i:=time/100*time/100;
- SUNspeedX:=x1/a;
- SUNspeedY:=y1/a;
- speedX:=(x1-x2)/speed;
- speedY:=(y1-y2)/speed;
- x1:=x1-speedX;y1:=y1-speedY;
- x2:=x2-speedX-SUNspeedX;y2:=y2-speedY-SUNspeedY;
- if abs(round(y1))>325 then goto endS;//стоп программы
- if abs(round(x1))>400 then goto endS;//Если вышло за границы окна
- setpixel(x0+round(i)+round(x1),y0{-round(time/100)}-round(y1),clRed);
- setpixel(x0+round(i),y0{-round(time/100)},clBlue);
- textout(1,1,'x='+round(x1)+' ');
- textout(50,1,' y='+round(y1)+' ');
- textout(1,15,'F='+round(F)+' 10^23');
- textout(1,30,'R='+round(sqrt(x1*x1+y1*y1))*1285+' км');
- textout(1,45,'a='+a);
- textout(1,45,'Скорость='+sqrt(speedX*speedX+speedY*speedY)*1285);
- end;
- endS:
- end.
Advertisement
Add Comment
Please, Sign In to add comment