我有自己的绘图程序,有各种“绘图工具”,如钢笔、橡皮擦、矩形、圆形、选择、文本等。
它是用 Python 和 wxPython 制作的。上面提到的每个工具都是一个类,它们都有多态方法,例如 left_down()、mouse_motion()、hit_test() 等。程序管理所有绘制形状的列表——当用户绘制了一个形状时,它被添加到列表中。这也用于管理撤消/重做操作。
所以,我有一个不错的代码库,可以将协作绘图连接到其中。可以更改每个形状以了解其所有者——绘制它的用户,并且只允许对一个人拥有的形状执行删除/移动/重新缩放操作。
我只是想知道开发它的最佳方法。“会话”中的一个人必须充当服务器,我没有钱提供免费的中央服务器。不知何故,用户将需要一种连接到服务器的方法,这意味着某种“发现服务器”浏览器......或其他东西。如何广播对应用程序所做的更改?就性能而言,实时绘制并在每个鼠标移动事件上广播消息的成本会很高,并且在给定时间有更多用户,情况会变得更糟。
欢迎任何想法,我不太确定从哪里开始开发这个(甚至如何测试它)