• Паскаль!!! Нужно написать модель солнечной системы с 3 планетами( Меркурий, Венера, Земля) и 1 спутник(Луна). Чем дальше планеты от солнца тем медленнее они крутятся. Есть код на одну планету, нужно дописать остальное в похожем стиле.

    uses crt, graphABC ;
    var
    x , y , x0 , y0 , rvod , xe , ye , rel , dy , re , i : integer ;
    Begin
    x := 640 ; // ширина окна
    y := 480 ; // высота окна
    setwindowsize ( x , y ) ; // устанавливаем размер окна
    x0 :=x div 2 ; // центр Х
    y0 := y div 2 ; // центр у
    rvod :=70 ; // радиус солнца
    rel := 10 ; // радиус венеры .
    dy :=100 ;
    re :=y0 - dy ; // радиус вращения венеры

    i :=360 ;
    repeat
    clearwindow ;
    if i=360 then i:= 1 else inc ( i ) ;
    setpencolor ( clorange ) ; // yer . цвет пepa
    circle ( x0 , y0 , rvod ) ; // солнце
    floodfill ( x0 , y0 , clyellow ) ; // заливка фигуры ( солнце )
    xe := x0 + round ( re*cos( i*pi / 180 ) ) ;
    ye := y0 + round ( re*sin (i*pi / 180 ) ) ;
    circle ( xe , ye , rel ) ; // (венера)
    delay ( 10 ) ;
    until keypressed
    End.

Ответы 1

  • uses GraphABC;Var   R:integer:=70; //радиус Солнца   A:array[1..4,1..5] of integer;   //A[1] - x   //A[2] - y   //A[3] - r   //A[4] - r орбиты   v:real:=0.03;   k:integer:=10; // Коэффициент масштабирования орбитBeginWindow.Maximize;A[1,3]:=10;A[1,4]:=R+A[1,3]*k;A[2,3]:=13;A[2,4]:=A[1,4]+A[2,3]*k;A[3,3]:=17;A[3,4]:=A[2,4]+A[3,3]*k;A[4,3]:=A[3,3] div 4;A[4,4]:=A[3,3]+A[4,3]*k;LockDrawing;SetCoordinateOrigin(Window.Width div 2,Window.Height div 2);RepeatWindow.Clear;Brush.Color := clYellow;FillCircle(0,0,R);Brush.Color := clGray;A[1,1]:=round(A[1,4]*Cos(v*3));A[1,2]:=round(A[1,4]*Sin(v*3));FillCircle(A[1,1],A[1,2],A[1,3]);Brush.Color := clOrange;A[2,1]:=round(A[2,4]*Cos(v*3/4));A[2,2]:=round(A[2,4]*Sin(v*3/4));FillCircle(A[2,1],A[2,2],A[2,3]);Brush.Color := clBlue;A[3,1]:=round(A[3,4]*Cos(v/4));A[3,2]:=round(A[3,4]*Sin(v/4));FillCircle(A[3,1],A[3,2],A[3,3]);Brush.Color := clGray;A[4,1]:=A[3,1]+round(A[4,4]*Cos(20*v));A[4,2]:=A[3,2]+round(A[4,4]*Sin(20*v));FillCircle(A[4,1],A[4,2],A[4,3]);v:=v+0.03;Redraw;Until false;End.
    • Автор:

      lola53
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years