Масштабирование рисунка относительно окна - PascalABC.NET
Формулировка задачи:
вот какая проблема: нужно, чтобы при изменении размера окна ''рисунок'' должен изменяться пропорционально изменению размера окна (проще говоря, рисунок должен остаться тем же, когда изменяться аргументы в setwindowxize(a,b) ).
Решение задачи: «Масштабирование рисунка относительно окна»
textual
Листинг программы
uses Graphabc; var x, y, z, k: integer; I: BYTE; begin setwindowsize(800, 800); clearwindow(clblack); sleep(1500); for i := 1 to 30 do begin setbrushcolor(clwhite); x := random(WindowWidth) + 1; y := random(WindowHeight) + 1; circle(x, y, 2) end; sleep(500); for i := 1 to 10 do begin setbrushcolor(clwhite); x := random(WindowWidth div 6 * 4) + 1; y := random(WindowWidth div 6 * 4) + 1; circle(x, y, 4) end; sleep(500); setbrushcolor(clblue); circle(WindowWidth div 6, WindowHeight div 6 * 4, 6); circle(WindowWidth div 6, WindowHeight div 6 * 5, 6); circle(WindowWidth div 6 * 3, WindowHeight div 6 * 5, 6); circle(WindowWidth div 6 * 3, WindowHeight div 6 * 3, 6); circle(WindowWidth div 60 * 45, WindowHeight div 6 * 2, 6); circle(WindowWidth div 60 * 48, WindowHeight div 6, 6); circle(WindowWidth div 60 * 53, WindowHeight div 60 * 18, 6); circle(WindowWidth div 60 * 51, WindowHeight div 60 * 25, 6); setpencolor(clblue); setpenwidth(4); sleep(1000); {1}line(WindowWidth div 6, WindowHeight div 6 * 4, WindowWidth div 6, WindowHeight div 6 * 5); {2}line(WindowWidth div 6, WindowHeight div 6 * 5, WindowWidth div 6 * 3, WindowHeight div 6 * 5); {3}line(WindowWidth div 6 * 3, WindowHeight div 6 * 5, WindowWidth div 6 * 3, WindowHeight div 6 * 3); {4}line(WindowWidth div 6 * 3, WindowHeight div 6 * 3, WindowWidth div 60 * 45, WindowHeight div 6 * 2); {5}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 48, WindowHeight div 6); {6}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 53, WindowHeight div 60 * 18); {7}line(WindowWidth div 60 * 45, WindowHeight div 6 * 2, WindowWidth div 60 * 51, WindowHeight div 60 * 25); end.
Объяснение кода листинга программы
- Установка размера окна 800x800 пикселей
- Очистка окна черным цветом
- Задержка 1500 мс (15 секунд)
- Цикл, который выполняет 30 раз:
- Установка цвета кисти на белый
- Генерация случайных координат x и y в пределах окна
- Рисует окружность с радиусом 2 на указанных координатах
- Задержка 500 мс (5 секунд)
- Цикл, который выполняет 10 раз:
- Установка цвета кисти на белый
- Генерация случайных координат x и y в пределах окна (с шагом 6)
- Рисует окружность с радиусом 4 на указанных координатах
- Установка цвета кисти на синий
- Рисует окружность с радиусом 6 на координатах (60/60 45, 6/6 2)
- Рисует окружность с радиусом 6 на координатах (60/60 * 48, 6/6)
- Рисует окружность с радиусом 6 на координатах (60/60 53, 60/60 18)
- Рисует окружность с радиусом 6 на координатах (60/60 51, 60/60 25)
- Установка цвета кисти на синий
- Установка ширины кисти на 4
- Задержка 1000 мс (10 секунд)
- Рисует прямую линию от (6/6 4, 6/6 5) до (6/6 4, 6/6 5)
- Рисует прямую линию от (6/6 5, 6/6 5) до (6/6 3, 6/6 5)
- Рисует прямую линию от (6/6 3, 6/6 5) до (6/6 3, 6/6 3)
- Рисует прямую линию от (6/6 3, 6/6 3) до (6/6 45, 6/6 2)
- Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 * 48, 6/6)
- Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 53, 60/60 18)
- Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 51, 60/60 25)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д