Изобразить движение треугольника (или круга) вокруг Земли - 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.
Объяснение кода листинга программы
- Подключаются необходимые библиотеки GraphABC и Crt.
- Объявляются переменные w, h, xc, yc, a, b, x, y и u типа integer и одна переменная pic типа Picture.
- Устанавливается размер окна приложения.
- Создается новый объект Picture с именем
zagotovka.jpg
. - Вычисляются координаты центра окна.
- Объявляются переменные a и b типа real.
- Инициализируется переменная u значением 0.
- Включается блокировка рисования.
- Запускается цикл повторения, который будет выполняться до нажатия клавиши.
- В рамках цикла рисуется фоновое изображение.
- Вычисляются координаты точки x и y для рисования треугольника.
- Если значение переменной y больше высоты окна минус высота треугольника минус 30, то устанавливается цвет кисти в желтый и рисуется круг.
- Задержка в 100 мс.
- Значение переменной u увеличивается на 0.1.
- Вызывается функция redraw для обновления изображения.
- Цикл повторяется до нажатия клавиши.
- После окончания работы с изображением, оно удаляется с помощью функции Destroy.