Движение круга по эллипсу - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Всем привет. Нужно нарисовать движение планеты по эллипсу вокруг солнца. Подскажите пожалуйста формулу движения по эллипсу. Я вот придумал такое:
Но что подставить на места '?', a и b не знаю, что бы я не подставил, не могу угадать так, что бы было под форму, даже рядом. Уравнение эллипса x^2/a + y^2/b = 1 тут подойдет же?

Решение задачи: «Движение круга по эллипсу»

textual
Листинг программы
program bublik;
 
uses
  graphABC;
 
var
  x, y,n,i: integer;
  k:real;
  K1, B: Array[1..901] of Integer;
  C: Array[1..901] of Color;
begin
  Window.SetSize(640, 640);
  k := 1;
  LockDrawing;
  for i := 1 to 900 do
  begin
    K1[i] := random(0,640);
    B[i] := random(0,640);
    C[i] := rgb(random(255), random(255), random(255));
  end;
  
  for n:=1 to 10 do begin
  i := 1;
  while k < 360 do 
  begin
    clearwindow(clblack);
    for i:=1 to 900 do
     putpixel(K1[i], B[i], C[i]);
    X := 300 + round(Sin(K) * 250 + 50); {ширина эллипса}
    Y := 300 + round(Cos(K) * 100 + 40);
    setbrushcolor(clSkyBlue);
    circle(x, y, 15);
    k := k + 0.009;
    setbrushcolor(clYellow);
    circle(300,300, 30);
    Redraw;
  end;
  end;
end.

Объяснение кода листинга программы

Список действий в коде:

  1. Установка размера окна 640x640 пикселей.
  2. Задаётся значение переменной k равное 1.
  3. Задаются массивы K1, B, C размером 901 элемент.
  4. Заполняются массивы K1, B, C случайными значениями от 0 до 640 и случайными цветами.
  5. В цикле от 1 до 10 выполняется следующая последовательность действий: а) Задаётся значение переменной i равное 1. б) В цикле от 0 до 359 выполняется следующая последовательность действий: а) Очищается окно. б) По каждой ячейке массива K1, B, C рисуется точка соответствующего цвета. в) Рассчитываются координаты x, y для рисования эллипса. г) Задаётся цвет жёлтого цвета для кисти. д) Рисуется эллипс с центром в точке (300,300) и шириной равной 15. е) Увеличивается значение переменной k на 0.009. ж) Рисуется эллипс с центром в точке (300,300) и шириной равной 30. з) Задаётся цвет синего цвета для кисти. и) Происходит перерисовка окна.
  6. Цикл от 1 до 10 повторяется 10 раз.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы