Построить движущиеся изображения НЛО на фоне звездного неба - 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.

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

  1. В начале кода используются библиотеки crt и graphABC.
  2. Константа n определяет количество цветов в массиве mas.
  3. Тип mas представляет собой массив целых чисел от 1 до n.
  4. Константы clRed, clBlue, clGreen, clPurple, clFuchsia, clNavy, clLime представляют цвета для использования в цикле.
  5. Переменные x, y, r1, r2, i, r, dr, b, k используются для создания движущихся кругов на экране.
  6. Переменная c используется для хранения текущего цвета фона.
  7. Переменная dr определяет размер каждого круга, который вычисляется как разница между r2 и r1, деленная на (n-1).
  8. Переменная r устанавливается равной r1 в начале цикла, а затем увеличивается на dr на каждой итерации.
  9. Переменная k используется для отслеживания количества итераций, которые уже были выполнены.
  10. Цикл repeat используется для создания движущихся кругов на экране.
  11. Внутри цикла for i:=0 до n-1 do выполняется следующий код:
    • setpencolor(c[i+1]); устанавливает цвет пера на цвет i+1 из массива cl.
    • setbrushstyle(bsClear); устанавливает стиль кисти на прозрачный.
    • circle(x,y,r); рисует круг с радиусом r вокруг точек x, y.
    • r увеличивается на dr.
  12. После завершения цикла 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.
  13. В конце цикла while (k>10) and keypressed; выполняется проверка условий:
    • если k больше 10, то цикл повторяется.
    • если нажата клавиша, то цикл повторяется.
  14. Конец программы.

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


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

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

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