мышь следовала за рисованием в C #

2

Я хочу сделать общую чертежную доску на С#. Это означает, что два человека, подключенные через TCP-соединение, могут использовать эту плату. Идея (на данный момент) заключается в том, что люди могут щелкнуть по экрану и рисовать. Как вы думаете, лучший метод для этого?
Достаточно легко нарисовать точку, когда пользователь нажимает на определенное место, но становится немного сложнее, когда пользователь тащит мышь, где вам нужно провести линию между последней точкой и текущим. Кроме того, это не работает так хорошо, поэтому я рисую точку, где линия начинает немного улучшать, но это не так хорошо.

Наконец, мне нужно также отправить это через TCP, поэтому мне нужно провести различие между ними. Я надеялся, что могу просто отправить очки и нарисовать их с другой стороны, но похоже, что это не сработает. Любые идеи, кроме отправки типа?

рисунок http://img193.imageshack.us/img193/9697/drawingw.png

EDIT:
хорошо, я собираюсь с интерфейсом IDrawingArgument, который имеет Dispatch (myForm), и в основном делает двойную отправку, поэтому он решает проблему TCP (собирается сериализовать/десериализовать ее).
Строки все еще немного громоздки.

Теги:
networking
drawing

2 ответа

3
Лучший ответ

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

bool isDrawing = false;
public void myCanvas_MouseMove(object sender, EventArgs e)
{
     if(!isDrawing)
     {
         isDrawing = true;
         // Do drawing here
         isDrawing = false;
     }
}

Это очень помогло мне при рисовании в событии mousemove.

  • 0
    Я думаю, что просто может это сделать. Я полагаю, это замок?
  • 0
    Пробовал, это не имеет большого значения.
Показать ещё 2 комментария
0

Точки: (Х, у), (х2, у2), (х3, у3)

Линия: (Х, у, х2, у2), (х3, у3, х4, у4)

Таким образом, формат представляет собой список кортежей. Кортежи размера 4 - это линии, размер 2 - это точки. Обратите внимание, что если ваша система усложняется, вы действительно сожалеете, что не просто делаете что-то вроде:

Точки: Д (х, у), D (х2, у2), D (х3, у3)

Линия: Л (х, у, х2, у2), L (х3, у3, х4, у4)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню