Изобразить линии случайной длины, соединенные последовательно друг с другом под случайным углом - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Требуется написать программу, изображающую линии случайной длины, соединенные последовательно друг с другом под случайным углом, кратным 60-и градусам. До этого выполнил такую же программу, но угол был кратен 90 градусам. Может кто подсказать, как сделать угол кратный 60-и градусам?
вот предыдущая версия программы с линиями под углом кратным 90 градусов

Решение задачи: «Изобразить линии случайной длины, соединенные последовательно друг с другом под случайным углом»

textual
Листинг программы
Uses graphABC;
var N,err,X,Y,i,k,l:integer;
    S:string;
begin
n:=10;
setwindowsize(600,600);
centerwindow;
randomize;
X:=windowwidth div 2;
Y:=windowheight div 2;
MoveTo(X,Y);
for i:=1 to N+1 do
 begin
  SetPenColor(clRandom);
  k:=1+random(5);
  l:=20+random(100);
  X:=X+round(l*cos(k*pi/3));
  Y:=Y-round(l*sin(k*pi/3));
  LineTo(X,Y);
 end;
end.

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

  1. В первой строке используется библиотека graphABC, которая, вероятно, предоставляет функции для работы с графиками.
  2. Переменная N инициализируется значением 10.
  3. Функция setwindowsize устанавливает размер окна приложения на 600x600 пикселей.
  4. Функция centerwindow центрирует окно приложения.
  5. Функция randomize инициализирует генератор случайных чисел.
  6. Переменные X и Y инициализируются координатами центра окна приложения (X=windowwidth div 2, Y=windowheight div 2).
  7. Функция MoveTo перемещает курсор мыши к точке X, Y.
  8. В цикле for происходит следующее:
    • Переменная i инициализируется значением 1.
    • Устанавливается цвет пера на случайный цвет с помощью функции SetPenColor(clRandom).
    • Переменная k инициализируется случайным числом в диапазоне от 1 до 5 с помощью функции random(5).
    • Переменная l инициализируется случайным числом в диапазоне от 20 до 100 с помощью функции random(100).
    • Курсор мыши перемещается к точке X, Y с помощью функции LineTo.
    • Координаты X и Y вычисляются как среднее арифметическое от X и Y предыдущей позиции курсора мыши, умноженное на l и k соответственно, с помощью формулы X=X+round(lcos(kpi/3)) и Y=Y-round(lsin(kpi/3)).
    • Переменная i увеличивается на 1.

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


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

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

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