Как нарисовать стрелку - Pascal ABC

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

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

Здравствуйте. У меня имеются две точки с координатами, заранее они неизвестны, т.к. координаты вносятся по нажатию мыши. Задача состоит в том, что необходимо нарисовать стрелку с "галочкой" от одних координат до других. Планировал использовать процедуры Line и Pie, т.к. по входным данным они вполне подходят, однако для построения непосредственно стрелки необходимы вычисления. С ними-то у меня и возникла проблема. Заранее благодарю за ответ.

Решение задачи: «Как нарисовать стрелку»

textual
Листинг программы
u:=ugol(x1,y1,x2,y2);
x3:=x2-round(20*cos(u+pi/10));
y3:=y2+round(20*sin(u+pi/10));
line(x2,y2,x3,y3);
x4:=x2-round(20*cos(u-pi/10));
y4:=y2+round(20*sin(u-pi/10));
line(x2,y2,x4,y4);

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

  1. ugol(x1,y1,x2,y2) - функция, которая вычисляет угол между двумя точками (x1,y1) и (x2,y2) и возвращает его значение
  2. x3:=x2-round(20*cos(u+pi/10)) - вычисление координаты x для первой точки стрелки, где u - значение угла, pi/10 - добавление к углу для смещения начала координат, 20 - длина стрелки, cos - функция, возвращающая косинус угла, round - функция, округляющая число до ближайшего целого значения
  3. y3:=y2+round(20*sin(u+pi/10)) - вычисление координаты y для первой точки стрелки, где u - значение угла, pi/10 - добавление к углу для смещения начала координат, 20 - длина стрелки, sin - функция, возвращающая синус угла, round - функция, округляющая число до ближайшего целого значения
  4. line(x2,y2,x3,y3) - функция, которая рисует прямую линию между точками (x2,y2) и (x3,y3)
  5. x4:=x2-round(20*cos(u-pi/10)) - вычисление координаты x для второй точки стрелки, где u - значение угла, pi/10 - отнимание от угла для смещения начала координат, 20 - длина стрелки, cos - функция, возвращающая косинус угла, round - функция, округляющая число до ближайшего целого значения
  6. y4:=y2+round(20*sin(u-pi/10)) - вычисление координаты y для второй точки стрелки, где u - значение угла, pi/10 - отнимание от угла для смещения начала координат, 20 - длина стрелки, sin - функция, возвращающая синус угла, round - функция, округляющая число до ближайшего целого значения
  7. line(x2,y2,x4,y4) - функция, которая рисует прямую линию между точками (x2,y2) и (x4,y4)

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


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

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

13   голосов , оценка 4 из 5