Нарисовать линию задав координаты мышкой в 2 клика - Pascal ABC

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

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

Нарисовать линию таким образом: тык мышкой в начальные координаты тык в конечные нарисовать. Как в пеинт. Язык изучаю 2 недели так что не все так просто для понимания... Знаю про процедуры moveto, lineto, mousedown но работающий код написать не могу)). Пробовал так...
Листинг программы
  1. uses GraphABC;
  2. procedure mousedown(x,y,mb: integer);
  3. begin
  4. if mb=1 then
  5. MoveTo(x, y);
  6. begin
  7. if mb=1 then
  8. Lineto(x, y);
  9. end;
  10. end;
  11.  
  12. begin
  13. SetWindowTitle('Графическое окно');
  14. Setwindowsize(800,600); //размер окна
  15. OnMousedown:=Mousedown;
  16. end
И так...
Листинг программы
  1. uses GraphABC;
  2. var a,b: integer; //координаты мышки
  3. procedure MouseDown(x,y,mb: integer);
  4. begin
  5. if mb=1 then // передаем координаты мышки в переменные а и б
  6. a : = x;
  7. b := y;
  8. end;
  9. begin
  10. SetWindowTitle('123');
  11. Setwindowsize(800,600); //размер окна
  12. OnMouseDown:=MouseDown; //1 клик, передаем координаты мышки в начальные координаты лайна
  13. x1: = a;
  14. y1: = b;
  15. OnMouseDown:=MouseDown; //2 клик, передаем тоже самое только в конечные
  16. x2 : = a;
  17. y2 : = b;
  18. Line(x1,y1,x2,y2); //рисуем
  19. end.

Решение задачи: «Нарисовать линию задав координаты мышкой в 2 клика»

textual
Листинг программы
  1. uses GraphABC;
  2. var xb,yb:integer;
  3. procedure MouseDown(x,y,mb: integer);
  4. begin
  5.   if xb<0 then
  6.   begin
  7.     xb:=x;
  8.     yb:=y;
  9.   end
  10.   else
  11.   begin
  12.     Line(xb,yb,x,y);
  13.     xb:=-1;
  14.   end;
  15. end;
  16.  
  17. begin
  18.   xb:=-1;
  19.   OnMouseDown:=MouseDown;
  20.   ReadLn;
  21.   Window.Close;
  22. end.

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

  1. Подключается библиотека GraphABC.
  2. Объявляются переменные xb и yb типа integer.
  3. Создается процедура MouseDown, которая принимает три параметра: x, y и mb типа integer.
  4. В начале процедуры проверяется, была ли ранее зафиксирована точка (xb < 0).
  5. Если условие выполняется, то значения xb и yb присваиваются значениям x и y соответственно.
  6. Если условие не выполняется, то рисуется линия от точки (xb, yb) до точки (x, y) с помощью процедуры Line.
  7. После рисования линии значение xb сбрасывается до -1.
  8. В начале программы объявляются значения xb и yb типа integer и сбрасываются до -1.
  9. Затем устанавливается обработчик событий OnMouseDown, который вызывает процедуру MouseDown при нажатии мыши.
  10. Заканчивается программа, и окно закрывается.

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


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

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

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы