Изобразить движение треугольника (или круга) вокруг Земли - Pascal ABC

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

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

Помогите изобразить движение треугольника(или круга) вокруг Земли тут:

Решение задачи: «Изобразить движение треугольника (или круга) вокруг Земли»

textual
Листинг программы
uses GraphABC,Crt;
var w,h,xc,yc,a,b,x,y: integer;
    u:real;
    pic:Picture;  //лучше класс Picture, чем описатель
 begin
 hidecursor;
 w:=600;
 h:=round(w*0.655);
 setwindowsize(w,h);
 centerwindow;
 pic:=Picture.Create('zagotovka.jpg');
 xc:=windowwidth div 2;
 yc:=windowheight div 2;
 a:=280;
 b:=80;
 u:=0;
 lockdrawing;
 repeat;
 pic.Draw(0,0,w,h);
 x:=xc+round(a*cos(u));
 y:=yc+round(b*sin(u));
 if y>yc-(b div 2)-30 then
  begin
   setbrushcolor(clYellow);
   circle(x,y,10);
  end;
 delay(100);
 u:=u+0.1;
 redraw;
 until keypressed;
 pic.Destroy;
end.

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

  1. Подключаются необходимые библиотеки GraphABC и Crt.
  2. Объявляются переменные w, h, xc, yc, a, b, x, y и u типа integer и одна переменная pic типа Picture.
  3. Устанавливается размер окна приложения.
  4. Создается новый объект Picture с именем zagotovka.jpg.
  5. Вычисляются координаты центра окна.
  6. Объявляются переменные a и b типа real.
  7. Инициализируется переменная u значением 0.
  8. Включается блокировка рисования.
  9. Запускается цикл повторения, который будет выполняться до нажатия клавиши.
  10. В рамках цикла рисуется фоновое изображение.
  11. Вычисляются координаты точки x и y для рисования треугольника.
  12. Если значение переменной y больше высоты окна минус высота треугольника минус 30, то устанавливается цвет кисти в желтый и рисуется круг.
  13. Задержка в 100 мс.
  14. Значение переменной u увеличивается на 0.1.
  15. Вызывается функция redraw для обновления изображения.
  16. Цикл повторяется до нажатия клавиши.
  17. После окончания работы с изображением, оно удаляется с помощью функции Destroy.

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

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