【发布时间】:2012-02-29 00:48:48
【问题描述】:
对不起,如果标题令人困惑,很难用一句话来概括。
我正在开展一个项目,该项目包括在网络浏览器中渲染机器人模拟。 更具体地说,在我正在学习的大学中,他们使用用 C++ 编写的模拟器,该程序模拟机器人在环境中的进化。 该模拟器有许多可用的输出,如 3D OpenGL 可视化等。 一个可用的输出是基本文本渲染,它为每个时间步输出,每个机器人在环境中的位置。
好的,所以他们要求我研究一种在浏览器中进行的新型可视化。 这意味着可以上传他的模拟器代码,在服务器上启动它,然后在浏览器中查看模拟(在 HTML5 Canvas 或 SVG 中),同时在服务器上进行模拟!
好吧,我首先想到的是使用 Ajax 从模拟器中获取数据并使用一些 Canvas 库在屏幕上绘制机器人。但是他们不想需要 Web 服务器,所以我想直接在模拟器中编写一种新型可视化(如果确实存在,则使用 C++ WebSocket 库),它将充当 WebSocket 服务器,以便浏览器可以直接对话到模拟器不需要Web服务器(不知道是否可能)。
嗯……就是这样。如果你能告诉我你的想法并给我一些建议/链接,那就太棒了。 是否可以在没有 Web 服务器的情况下处理这个问题?如果没有在模拟器中实现 HTTP 协议是不可能的,那么我将跳过这个想法并使用 Web 服务器:)
第二个问题更准确: 我已经看过一些 HTML5 Canvas 库、fabric.js、jCanvaScript、dojo.gfx、cake、doodle.js、bHive、KineticJS。我仍然不确定要使用哪一个。 我开始使用 jCanvaScript 进行一些实验,但遇到了一个问题。 我从服务器获取数据(每个时间步的机器人位置),然后必须在画布中绘制它们。我正在使用一些 .animate 函数来获得平滑的动作。这个函数需要数毫秒,即动画的时间,我不知道如何同步在模拟的每个时间步我必须移动的所有对象的动画。 你知道一个有助于实现这种模拟的框架吗? (只是在每个时间步之间移动对象)。
就是这样,为我的英语不好道歉,我希望它是可以理解的,如果不是,告诉我,我会改写。
提前感谢您的帮助。 我对那个项目有点迷茫,任何建议都将不胜感激!
祝你有美好的一天。
巴尔扎德。
【问题讨论】:
标签: javascript ajax websocket simulation html5-canvas