Масштабирование рисунка относительно окна - 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.

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

  1. Установка размера окна 800x800 пикселей
  2. Очистка окна черным цветом
  3. Задержка 1500 мс (15 секунд)
  4. Цикл, который выполняет 30 раз:
    • Установка цвета кисти на белый
    • Генерация случайных координат x и y в пределах окна
    • Рисует окружность с радиусом 2 на указанных координатах
  5. Задержка 500 мс (5 секунд)
  6. Цикл, который выполняет 10 раз:
    • Установка цвета кисти на белый
    • Генерация случайных координат x и y в пределах окна (с шагом 6)
    • Рисует окружность с радиусом 4 на указанных координатах
  7. Установка цвета кисти на синий
  8. Рисует окружность с радиусом 6 на координатах (60/60 45, 6/6 2)
  9. Рисует окружность с радиусом 6 на координатах (60/60 * 48, 6/6)
  10. Рисует окружность с радиусом 6 на координатах (60/60 53, 60/60 18)
  11. Рисует окружность с радиусом 6 на координатах (60/60 51, 60/60 25)
  12. Установка цвета кисти на синий
  13. Установка ширины кисти на 4
  14. Задержка 1000 мс (10 секунд)
  15. Рисует прямую линию от (6/6 4, 6/6 5) до (6/6 4, 6/6 5)
  16. Рисует прямую линию от (6/6 5, 6/6 5) до (6/6 3, 6/6 5)
  17. Рисует прямую линию от (6/6 3, 6/6 5) до (6/6 3, 6/6 3)
  18. Рисует прямую линию от (6/6 3, 6/6 3) до (6/6 45, 6/6 2)
  19. Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 * 48, 6/6)
  20. Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 53, 60/60 18)
  21. Рисует прямую линию от (60/60 45, 6/6 2) до (60/60 51, 60/60 25)

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


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

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

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