Графический режим: вывод точек по всему экрану за исключением круга заданного радиуса - PascalABC.NET
Формулировка задачи:
Написать программу , которая выводила бы в графическом режиме на весь экран монитора , кроме круга с центром ( 200,200 ) и радиусом 80, случайно точки до тех пор , пока не будет нажата клавиша Esc.
Решение задачи: «Графический режим: вывод точек по всему экрану за исключением круга заданного радиуса»
textual
Листинг программы
- uses
- GraphABC;
- procedure KeyDown(Key: integer);
- begin
- if Key = VK_Enter then
- halt;
- end;
- var
- x, y: integer;
- begin
- OnKeyDown := KeyDown;
- SetWindowSize(640, 480);
- Circle(200, 200, 80);
- repeat
- x := random(0, WindowWidth);
- y := random(0, WindowHeight);
- if sqr(x - 200) + sqr(y - 200) > sqr(80) then
- PutPixel(x, y, rgb(random(255), random(255), random(255)));
- until false;
- end.
Объяснение кода листинга программы
- Объявлены переменные x и y типа integer.
- Задана функция обратного вызова KeyDown для обработки нажатий клавиш.
- Установлен размер окна 640x480 пикселей.
- Выведен круг с центром в точке (200, 200) и радиусом 80 пикселей.
- В цикле повторяется 20 раз:
5.1. Генерируются случайные координаты x и y в пределах окна.
5.2. Проверяется, находится ли точка внутри круга: если расстояние от точки до центра круга больше его радиуса, то она считается
вне
и на неё выводится пиксель случайного цвета. - Цикл повторяется до тех пор, пока не будет нажата клавиша Enter.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д