Member 13323088 Ответов: 2

Как нарисовать линию между двумя точками с помощью мыши move in C#


я хочу провести линию между двумя точками, используя мышь вверх и мышь вниз.

Что я уже пробовал:

если щелкнуть мышью вниз и получить точку, чтобы добавить список ,то же самое, что сделать мышью вверх. наконец
с помощью мыши перемещайте точки, чтобы нарисовать линию. но здесь хотят случиться так ,что первые две точки проведут линию, но предстоящая точка не провела линию.
а также постоянно я хочу рисовать линии на последней точке до новой точки щелчка мыши.если я перемещаю мышь в любом месте в поле изображения, то эта линия будет приходить в движущееся положение и, наконец, я щелкаю мышью вверх, чтобы закончить рисование линии.

OriginalGriff

А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?

2 Ответов

Рейтинг:
2

GenJerDan

Вы не сказали, что вы рисуете на/В, но то, что я сделал в аналогичной ситуации, состояло в том, чтобы сохранить список точек, щелкнутых (MouseDown), и нарисовать линии, перерисовывая весь холст каждый раз, когда происходило событие Mouse Up. Это происходит достаточно быстро, чтобы вы не заметили перерисовки.

Использование Полилинии.Точки, добавление новых точек к нему с каждым щелчком будет иметь тот же эффект и может быть проще, чем рисование отдельных линий.


Рейтинг:
0

W∴ Balboos, GHB

Похоже, у вас возникли проблемы с тем, что я свободно называю флагом.

Вам нужно сообщить вам приложение при первом щелчке мыши и сохранить его местоположение.
Затем вам нужно сообщить вашему приложению, когда мышь была нажата во втором месте, чтобы вы могли вызвать функцию рисования линий.

В этот момент становится непонятно, чего вы хотите. Вы хотите соединить каждый новый щелчок мыши с последним, чтобы нарисовать серию линий, соединенных друг с другом, или вы хотите сделать новые линии, которые обычно не связаны друг с другом.

И вот тут-то и появляется флаг. Вам нужно управлять состоянием вашей программы. В первом случае все, что вам нужно сделать, это отслеживать самый последний щелчок, а затем, при новом щелчке, нарисовать линию и сохранить новую точку. В последнем случае вам нужно установить начальную точку, а затем, когда вы нажмете конечную точку и нарисуете линию, вам нужно очистить данные. Или есть флаг, который сообщает системе, ждет ли она первого или второго щелчка пары.

Хорошо - теперь используйте свой отладчик и смотрите состояние вашего приложения, когда вы проходите через него. Является ли причина для рисования большего количества линий повторно включена? Или, возможно, вы продолжаете рисовать одну и ту же линию, снова и снова, делая вид, что ничего не происходит.

Вам нужно будет разобраться в этом - и обучение сделает вас лучшим программистом.