Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 电子黑板#_C#_.net_Sockets - Fatal编程技术网

C# 电子黑板#

C# 电子黑板#,c#,.net,sockets,C#,.net,Sockets,创意: 我想让smth像实时电子黑板。许多用户在屏幕上有一块板,可以同时绘制smth,板将更新 实施: 我有多用户套接字服务器,允许聊天(黑板将是新功能),我需要当一个用户绘制smth时,borad应该更新到其他用户(可能是它应该序列化并发送或smth其他) 问题: 如何发送此图像?我想我需要发送的不是整个图像,而是协调,还是你的建议 更新:我发现在.net中存在InkCanvas这是我需要的,但如何从中发送图像是个问题 更新:InkCanvas中的图像表示为Stroke对象,并且StrokeC

创意: 我想让smth像实时电子黑板。许多用户在屏幕上有一块板,可以同时绘制smth,板将更新

实施: 我有多用户套接字服务器,允许聊天(黑板将是新功能),我需要当一个用户绘制smth时,borad应该更新到其他用户(可能是它应该序列化并发送或smth其他)

问题: 如何发送此图像?我想我需要发送的不是整个图像,而是协调,还是你的建议

更新:我发现在.net中存在
InkCanvas
这是我需要的,但如何从中发送图像是个问题


更新:
InkCanvas
中的图像表示为
Stroke
对象,并且
StrokeCollection
类具有一个序列化图像的
Save()
方法。解决方案之一:)

是的,您应该只发送每条线的坐标(因为鼠标绘制的是大量点到点的线),因此当用户绘制新内容时,您应该将其中的每一条发送给所有客户端。

是的,您应该只发送每条线的坐标(由于鼠标绘制的是大量点到点线)因此,当用户绘制新内容时,您应该将其中的每一项发送给所有客户端。

在我看来,首先您需要使用绘图名称空间,让用户绘制一个面板或其他东西。我认为与下一步相比,这并不难。信息的传输。正如您所理解的那样传输数据(套接字),你的下一个问题是传输什么。发送一个完整的映像可以工作,但会浪费网络带宽,而且效率非常低。所以坐标是你的最佳选择

http://www.bobpowell.net/coordinatesystems.htm

http://www.java2s.com/Tutorial/VB/0300__2D-Graphics/Drawlineusingfloatcoordinates.htm
提供的两个链接提到了如何使用坐标来绘制一些东西。传输信息的方法可能是XML或您自己的编码机制来编码X1,Y1到X2,Y2坐标

在绘制直线(或基本形状)时捕获坐标应该很容易,但我不知道在使用徒手绘制时如何做到这一点

最后,你应该有一个机制来确保聊天室中的每个人都能在画出某个东西时正确地获得坐标

更新: 关于你的徒手画问题,这些链接将帮助你

这个链接看起来很有前途,因为它是一个由2个用户使用的白板应用程序…再加一点努力,也许你可以让它为任何数量的用户工作:)

IMO,首先需要使用绘图名称空间,让用户在面板或其他东西上绘图。我认为,与下一步相比,这并不难。信息的传递。正如您已经了解了如何传输数据(套接字)一样,下一个问题是传输什么。发送一个完整的映像是可行的,但会浪费网络带宽,而且效率低下。所以坐标是你最好的选择

http://www.bobpowell.net/coordinatesystems.htm

http://www.java2s.com/Tutorial/VB/0300__2D-Graphics/Drawlineusingfloatcoordinates.htm
提供的两个链接提到了如何使用坐标绘制东西。传输信息的方法可能是XML或您自己的编码机制来编码X1,Y1到X2,Y2坐标

在绘制直线(或基本形状)时捕获坐标应该很容易,但我不知道在使用徒手绘制时如何做到这一点

最后,你应该有一个机制来确保聊天室中的每个人都能在画出某个东西时正确地获得坐标

更新: 关于你的徒手画问题,这些链接将帮助你

这个链接看起来很有前途,因为它是一个由2个用户使用的白板应用程序。。。再努力一点,也许您就可以让它适用于任何数量的用户:)

但用户不仅可以画直线,如果他画曲线,坐标是什么?简单地说,曲线可以是一系列直线或贝塞尔曲线,如果想要完美。曲线=起点、终点和圆的大小。这是一个关于曲线的教程:但用户不仅可以画直线,如果他画曲线,坐标是什么?简单地说,曲线可以是一系列直线或贝塞尔曲线,如果想要完美的话。曲线=起点、终点和圆应该有多大?关于曲线的教程: