Изображение к статье создано при помощи нейросети Kandinsky
Всем привет.
НА ЗАМЕТКУ
Друзья, я признаюсь честно, в этой статье я изобрёл "велосипед", т.к. поискав уже после написания этой статьи другие способы нахождения отрезка линии, я понял, что точка середины отрезка может быть найдена гораздо более простым способом - без использования теоремы Пифагора и тригонометрических функций. Поэтому, пожалуйста, отнеситесь к информации из данной статьи просто как к альтернативному и, надо сказать, более сложному способу нахождения координат середины отрезка. С публикации данную статью не снимаю, вдруг всё же кому-то будет чем-то интересен и полезен и этот вариант.
О том, как очень просто и быстро найти середину отрезка, описано, в частности, здесь: https://ru.wikihow.com/найти-середину-отрезка-прямой
В сегодняшней статье я расскажу о том, как найти и нарисовать центр линии на языке C# в приложении Windows Forms, используя для рисования доступные возможности и средства GDI+. В данный момент я разрабатываю одну программу для визуального проектирования игровых объектов 2D-игр, и в этой программе мне потребовалась реализация функционала "Линейка", который бы измерял расстояние между двумя точками линии, нарисованной на форме в приложении Windows Forms, а также находил бы центральную точку линии (отрезка между двумя заданными точками).
Поскольку нет известных и штатных средств найти/нарисовать центр линии, мне потребовалось это сделать вручную, при помощи использования формул, знакомых нам из курса средней школы: в данной задаче нам очень поможет теорема Пифагора, а также тригонометрические функции (конкретно в нашем примере нам потребуется найти косинус угла).
Если вы ещё не сталкивались с GDI+, то рекомендую перед этой статьёй прочитать другую мою вводную статью "Рисуем фигуры на C# при помощи средств GDI+" по отрисовке простых фигур средствами GDI+, где я кратко рассказываю про этот стандартный интерфейс графического устройства, предоставляю внешние ссылки по этой теме и объясняю, как рисовать различные фигуры на форме в приложении Windows Forms.
Итак, в контексте этой статьи мы напишем с вами программу для Windows Forms, в которой будем строить и рисовать линию по двум заданным нами точкам, а также находить центральную точку этой линии. Мы также будем выводить координаты X и Y для всех точек отрисованной линии: для граничных точек и центральной точки, координаты которой мы рассчитаем специальным образом при помощи упомянутой теоремы Пифагора и тригонометрической функции Cos (косинус).
В конце статьи, как обычно, я дам ссылку на архив с готовым проектом для среды Microsoft Visual Studio, который мы напишем в этой статье.
Давайте сразу посмотрим на то, как будет выглядеть разрабатываемая нами программа.
При запуске программа начнёт отслеживать движение курсора мыши и рисовать небольшую окружность - в месте центра курсора. А также выводить текущие координаты точки, соответствующей положению курсора мыши:
Пока мы будем двигать курсором в области формы, мы тем самым будем выбирать начальную точку нашей линии. Для фиксации начальной точки линии нужно будет кликнуть по форме левой кнопкой мыши.