IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача про движение спутника земли
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4

Репутация: -  0  +


Подскажите наилучший  способ решения задачи.
Задача
Смоделировать движение спутникавокруг земли
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской

Репутация: -  0  +


Вот примерный текст но еще не дароботаный.
Код
Program Space;
  Uses Graph, Crt;
  Const
    RadOrb = 250;  RadSun = 70;
    RadGal = 100;  RadZem = 18;
    Naklon = 0.2;
    PressZem = 0.65;
    Compress = 0.8;

  Var
    ZemX, ZemY, UgMer,  PixelY,  DUgZem ,  UpDown,
    XRad, Grad, UgZem,  PixelX,  StAngle,  Ua, Ub,
    ParallelY,  Color,  ZemPix,  EndAngle,
    VisualPage, GrMode, GrError, GrDriver, i : Integer;
    Ugol,  CompressZem, Expansion,
    DUgol, Projection,  PolUgol              : Real;
BEGIN

  GrDriver := EGA; GrMode := EGAHi;
  InitGraph(GrDriver, GrMode, 'C:\TP\BGI');
  GrError := GraphResult; If GrError<>GrOk then Halt;

  SetBkColor(Black);
  SetFillStyle(1, Yellow);
  Ugol := 0; DUgol := 2*Pi/180;
  UgZem := 0; DUgZem := 14;

  VisualPage := 1;
  Repeat
    SetVisualPage(1- (VisualPage mod 2));

    VisualPage := VisualPage+1;
    SetActivePage(1 - (VisualPage mod 2));

    ClearDevice;


    RandSeed:=1;
    Expansion:=VisualPage/100;
    For i:= 1 to VisualPage do
      begin XRad := Trunc(Expansion*RadGal*Random);

         PolUgol:= 2*Pi*Random-VisualPage/30;

         PixelX := 370+Trunc(XRad*cos(PolUgol+1.8));
         PixelY := 250+Trunc(XRad*0.5*sin(PolUgol));
         PutPixel(PixelX, PixelY, White)
      end;


    Randomize;

    For i:=1 to 70 do
      PutPixel(Random(640),Random (350),White);

    For i := 1 to 100 do
      PutPixel(320+Round(RadOrb * cos((i+VisualPage/5)*Pi/50+0.3)),
      160+Round(RadOrb*Naklon*sin((i+VisualPage/5)*Pi/50-Pi/2)),15);

    PieSlice(310, 160, 0, 360, RadSun);

    Ugol := Ugol+DUgol;
    Grad := Round(180*Ugol/Pi) mod 360;
    ZemX := 320+Round(RadOrb*cos((Ugol+Pi/2+0.3)));
    ZemY:=160+Round(RadOrb*Naklon*sin(Ugol));
    CompressZem := 2.5-cos(Ugol+0.3);

    ZemPix := Round(RadZem*CompressZem);
    UgZem := UgZem+DUgZem;

    For i := 0 to 11 do
     begin
      UgMer := (UgZem+i*30) mod 360;
      If (90<UgMer) and (UgMer<270)
        then begin StAngle := 90; EndAngle := 270 end
        else begin StAngle := 270; EndAngle := 90 end;
      Ua := (Grad+220) mod 360; Ub := (Grad+400) mod 360;


      Color := LightBlue;
      If Ua<=Ub then if (Ua<UgMer) and (UgMer<Ub) then Color := White;
      If Ua >Ub then if (Ua<UgMer) or  (UgMer<Ub) then Color := White;
      SetColor(Color);
      XRad := round((ZemPix*cos(UgMer*Pi/180)));
      Ellipse(ZemX,ZemY,StAngle,EndAngle,abs(XRad),round(PressZem*ZemPix));
     end;

    For i := 2 to 7 do
      begin
        XRad := abs(Round(ZemPix*sin(i*Pi/9)));

        UpDown := Round(ZemPix*PressZem*cos(i*Pi/9));

        ParallelY := ZemY+UpDown;
        SetColor(LightBlue);
        Ellipse(ZemX, ParallelY, 0, 360, XRad, Round(Naklon*XRad));

        SetColor(White);
        Ellipse(ZemX,ParallelY,Grad+220,Grad+400,XRad,Round(Naklon*XRad));

      end;

    If CompressZem<2 then PieSlice(310, 160, 0, 360, RadSun);

    RandSeed := VisualPage mod 12;
    For i := 1 to 250 do
      begin
         Projection := (1-sqr(Random))*Pi/2;
         XRad := RadSun+Round((20)*sin(Projection))-15;
         PolUgol := 2 * Pi * Random+VisualPage/20;

         PixelX := 310 + Round( XRad * cos(PolUgol));
         PixelY := 160 + Round( Compress * XRad * sin(PolUgol));
         PutPixel(PixelX, PixelY, LightRed)
      end;
  until KeyPressed
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 8:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name