Помощь - Поиск - Пользователи - Календарь
Полная версия: Модель солнечной системы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Pautina
Народ, на вас вся надежда. Землю вокруг Солнца я уже заставила вращаться, а вот с вращением Луны вокруг Земли проблемка выходит! Помогите пожалуйста!
volvo
Вот так, например:


...
var
  Form1: TForm1;

const
  R2 = 150;
  R3 = 50;

implementation

{$R *.dfm}

var
  angle_2, angle_3: extended;

procedure TForm1.Timer1Timer(Sender: TObject);

  procedure get_center(var cx, cy: integer; shape: TShape);
  begin
    cx := Shape.Left + Shape.Width div 2;
    cy := Shape.Top + Shape.Height div 2;
  end;

var
  s2_cx, s2_cy: integer;
  s3_cx, s3_cy: integer;
begin
  get_center(s2_cx, s2_cy, Shape1);
  inc(s2_cx, trunc(R2 * cos(angle_2)));
  dec(s2_cy, trunc(R2 * sin(angle_2)));

  Shape2.Left:=s2_cx - shape2.Width div 2;
  Shape2.Top:=s2_cy - shape2.Height div 2;

  angle_2 := angle_2 + 0.1;
  if angle_2 > 2*pi then angle_2 := angle_2 - 2*pi;

  get_center(s3_cx, s3_cy, Shape2);
  inc(s3_cx, trunc(R3 * cos(angle_3)));
  dec(s3_cy, trunc(R3 * sin(angle_3)));

  Shape3.Left:=s3_cx - shape3.Width div 2;
  Shape3.Top:=s3_cy - shape3.Height div 2;

  angle_3 := angle_3 + 0.2;
  if angle_3 > 2*pi then angle_3 := angle_3 - 2*pi;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  angle_2 := 0.0;
  angle_3 := 0.0;
end;

end.

мисс_граффити
а я тоже такую штуку на 1 курсе делала ))
у меня там Земля вращалась вокруг Солнца и вокруг собственной оси, Луна вокруг Земли и еще кораблик летел. И звездочки появлялись.
klem4
Вот мой вариант в первом приближении так сказать smile.gif

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.