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

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

  1. Объявлены переменные x и y типа integer.
  2. Задана функция обратного вызова KeyDown для обработки нажатий клавиш.
  3. Установлен размер окна 640x480 пикселей.
  4. Выведен круг с центром в точке (200, 200) и радиусом 80 пикселей.
  5. В цикле повторяется 20 раз: 5.1. Генерируются случайные координаты x и y в пределах окна. 5.2. Проверяется, находится ли точка внутри круга: если расстояние от точки до центра круга больше его радиуса, то она считается вне и на неё выводится пиксель случайного цвета.
  6. Цикл повторяется до тех пор, пока не будет нажата клавиша Enter.

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


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

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

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