Графический режим: вывод точек по всему экрану за исключением круга заданного радиуса - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д