![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() собственно делаю рисовалку для двоих, человек создает сервер и к нему подключаешься и рисуете вместе,
Передаю при рисовании координаты другому человеку и там принимаю и рисую, но проблема в том что принимаютсяони почемуто както с краю все чиркаются линии коряво, и еще вопрос, отриовку твою и второго нужно разными ведь ???:= T8Bit.Create; делать, иначе если только одним то часто менять нужно будет атрибуты притом что в это время рисует он и ты, но вот пробовал двумя разными Код:
так на PaintBox1 видно только 1 последний VScreen2, как их отрисвать чтоб оба были видны? |
#2
|
||||
|
||||
![]() вроде решил проблему с координатами
но вот проблема мне бы от второго человека рисовать другой переменной T8bit все бы ничего рисую ей но в событии Код:
если давать еще Код:
Последний раз редактировалось ALexandr555, 17.03.2011 в 15:31. |
#3
|
|||
|
|||
![]() Либо использовать TransparentColor, либо передавать не изображение, а массив точек, или линий, которые добавил пользователь, то есть холст должен быть один, а рисуют на нем двое, если один рисует линию, то передаем на сервер ее координаты вместе с атрибутами и отрисовываем.
Так же, можно пойти и другим путем, в начале программы создаем холст и копию холста, когда отправляется пакет, то сравниваем оба холста, создаем массив разницы точек и отправляем его, и сохраняем новую копию холста. |
#4
|
||||
|
||||
![]() Цитата:
|
#5
|
|||
|
|||
![]() И так, все сначала, что вы хотите? Что конкретно не получается? Что вы передаете из клиентской части серверной?, и что передает серверная часть клиентской? Что такое VScreen и VScreen2?
Сдается мне вы неправильный способ изначально начали проробатывать, ответьте на вышеуказанные вопросы и я подскажу как лучше сделать. |
#6
|
||||||||||
|
||||||||||
![]() Код:
Вот при движении рисую и отправляю координаты, там все отрисовывается как надо, но в если я буду отправлять с атрибутами и прочим, то в это время же, рисовать человек у себя тоже может, и выйдет что если сменить атрибут то сменится и у тебя, и в это время могут то линии другие начиркаться, то твой цвет в другой перейдет. Поэтому я и хотел сделать две переменные. Код:
Код:
создаются они так сам класс 8бит Код:
init процедура что при создании Код:
А в приеме же из пакета вырезаются координаты и отрисовываются, клиентская при рисовке отправляет, и серверная тоже при рисовке отправляет, при получении обе отрисовывают. Последний раз редактировалось ALexandr555, 17.03.2011 в 18:00. |
#7
|
||||||||||
|
||||||||||
![]() а ну так проблема то в чем
Код:
вот эта операция должна выполняться после неё токо отображается рисунок если выполняется Код:
Код:
Код:
Код:
|
#8
|
||||
|
||||
![]() как понял VScreen это буфер с него и выводится на пинт бокс, нельзя ли вот одновременно рисовать в один буфер просто при одновременном рисовании сбивается,
Код:
Код:
|
#9
|
|||
|
|||
![]() Цитата:
Цитата:
Вывести VScreen и VScreen2 на один холст без (частичных) потерь невозможно, для вашего варианта должен существовать только один VScreen, на котором должна воспроизводится отрисовка с обоих компьютеров. Пакеты отправляемые через serversocket1 надо разделять каким либо способом, а на принимающей стороне, следить приходящими пакетами, так как могут быть отправлены две и более линий в одном пакете, то есть будет два запроса, но они могут прийти одним пакетом, эту ситуацию надо отрабатывать. |
#10
|
||||
|
||||
![]() Цитата:
Цитата:
Цитата:
|
#11
|
||||
|
||||
![]() я склоняюсь к тому чтобы добавить в canvas MoveTo2 и LineTo2
|
#12
|
|||
|
|||
![]() Что не получается, я вот предыдущего не понял, что значит когда быстро двигаешь, только точки получаются, пиши внятнее. детальнее, разберемся..
|
#13
|
||||
|
||||
![]() Я вижу 2 варианта:
1. Если использовать для каждого рисующего отдельный буфер (TBitmap), то можно делать маску изображения и потом на пейнт бох накладывать изображение по маске. 2. Создать (к примеру) "буфер" атрибутов на каждого рисующего. И не делать MoveTo, LineTo, а набор процедур типа Line(From, To, Attrib), где Attrib - атрибуты рисующего. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#14
|
||||
|
||||
![]() Asinkrit
если команды вида Код:
|
#15
|
||||
|
||||
![]() Цитата:
2- не совсем понял что будут эти процедуры делать и что значат From, To |