Построить движущиеся изображения НЛО на фоне звездного неба - Turbo Pascal
Формулировка задачи:
Графика в паскале
1. Построить движущиеся изображения НЛО на фоне звездного неба.
2.Получить мультфильм "Круги на воде", используя семь концентрических окружностей. Центры окружностей должны быть совмещены с центром экрана, а радиусы изменяться от 40 до 82 пиксел, увеличиваясь на 7 пиксел с каждой следующей окружностью. Иллюзия движения должна создаваться последовательной сменой цветов всех окружностей, начиная с внутренней и кончая внешней. Процесс смены цветов следует повторить не менее 10 раз.
Помогите пожалуйста ребята!!!
Заранее БЛАГОДАРЮ!!!
Решение задачи: «Построить движущиеся изображения НЛО на фоне звездного неба»
textual
Листинг программы
uses crt,graphABC; const n=7; type mas=array[1..n] of integer; const cl:mas=(clRed,clBlue,clGreen,clPurple,clFuchsia , clNavy ,clLime); var x,y,r1,r2,i,r,dr,b,k:integer; c:mas; begin hidecursor; c:=cl; r1:=40; r2:=82; dr:=7; x:=windowwidth div 2; y:=windowheight div 2; dr:=round((r2-r1)/(n-1)); r:=r1; k:=0; repeat setbrushstyle(bsClear); for i:=0 to n-1 do begin setpencolor(c[i+1]); setbrushstyle(bsClear); circle(x,y,r); r:=r+dr; end; delay(1000); k:=k+1; b:=c[n]; for i:=n downto 2 do c[i]:=c[i-1]; c[1]:=b; r:=r1; until (k>10)and keypressed;{ГЄГ®Г*ГҐГ¶ åñëè áîëüøå 10 Г°Г*Г§ ГЁ Г*Г*Г¦Г*ГІГ* ГЄГ«Г*ГўГЁГёГ*} end.
Объяснение кода листинга программы
- В начале кода используются библиотеки crt и graphABC.
- Константа n определяет количество цветов в массиве mas.
- Тип mas представляет собой массив целых чисел от 1 до n.
- Константы clRed, clBlue, clGreen, clPurple, clFuchsia, clNavy, clLime представляют цвета для использования в цикле.
- Переменные x, y, r1, r2, i, r, dr, b, k используются для создания движущихся кругов на экране.
- Переменная c используется для хранения текущего цвета фона.
- Переменная dr определяет размер каждого круга, который вычисляется как разница между r2 и r1, деленная на (n-1).
- Переменная r устанавливается равной r1 в начале цикла, а затем увеличивается на dr на каждой итерации.
- Переменная k используется для отслеживания количества итераций, которые уже были выполнены.
- Цикл repeat используется для создания движущихся кругов на экране.
- Внутри цикла for i:=0 до n-1 do выполняется следующий код:
- setpencolor(c[i+1]); устанавливает цвет пера на цвет i+1 из массива cl.
- setbrushstyle(bsClear); устанавливает стиль кисти на прозрачный.
- circle(x,y,r); рисует круг с радиусом r вокруг точек x, y.
- r увеличивается на dr.
- После завершения цикла for i:=0 до n-1 do выполняется следующий код:
- b:=c[n]; сохраняет цвет n в переменной b.
- for i:=n downto 2 do c[i]:=c[i-1]; возвращает цвета массива к их начальным значениям, начиная с индекса n-1.
- r устанавливается равным r1.
- В конце цикла while (k>10) and keypressed; выполняется проверка условий:
- если k больше 10, то цикл повторяется.
- если нажата клавиша, то цикл повторяется.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д