我正在努力寻找一个共同满足以下要求的图书馆:
平滑缩放,旋转,平移(二维)。我将有一个大位图(或SVG,在某些情况下),可能高达10000x10000像素,这可用作地图,有一些中等数量的小位图(或者,可能是SVG)可以在它上面拖动。我需要能够缩放,旋转和平移这个场景;但是,视图对于大位图始终是正常的(即正面看),所以我并没有真正使用深度维度。
点对点。我希望多个用户能够连接以便共享上面提到的场景之一,最好是点对点,没有用户进行了大量配置。我打算让服务器运行,以防用户无法连接P2P;我希望自动进行故障转移,或者可能有某种方式来推广能够成为服务器的客户。没有给定的实例(一个场景)可能同时拥有超过10个用户;我真的不需要强大的处理能力,比如成千上万。
同步。一旦用户开始拖动其中一个小位图(一块),其他任何用户都无法拖动该块直到拖动停止。我还没有想到如何做到这一点---可能有一个简单的解决方案,或者这种同步可能是图书馆提供的。
Cross(ish)-platform。我需要能够在Linux,Windows和Mac OS上运行。能够在平板电脑上运行会很高兴。对所有平台提供大致相同的代码是一个优点,但并非绝对必要。
(L)GPL兼容。我打算根据LGPL或GPL发布,最好是后者,所以我需要具有兼容许可证的库。
我没有使用任何特定的语言,我想使用最简单的工作库或库,但我最喜欢的是项目最多使用两种语言。 (模型可能是一种语言,View可能是另一种语言,所以他们可以通过我定义的一些协议相互交谈,如果这样可以让我更好地选择使用的库。)任何人都可以提供使用建议的建议?
答案 0 :(得分:1)
OpenGL始终是硬件加速跨平台3D / 2D渲染的绝佳选择。鉴于程序的自定义性质,您可能必须自己实现所有内容 - 但是一旦掌握了它的要点就很容易了。尝试http://nehe.gamedev.net/主要是3D渲染教程,但可以轻松应用于2D。
您可能需要拆分较大的位图并将其存储在较小的磁贴中,我建议您在必要时进行流式处理。您可能还希望随时加载多个周围的图块,因此缩放/平移/旋转不会导致任何瑕疵或加载,因为图像在2D / 3D空间中被操纵。
如果您有任何问题,请与我们联系。
答案 1 :(得分:0)
对于点对点通信,您可能需要查看我们的MsgConnect。它是Linux和MacOS X的C ++代码库目前可以在GPL下使用,我们正在考虑在一些开放许可下打开其他代码库。