我将开发一个在浏览器上运行并具有许多可视化和模拟工作(静电和电磁可视化、2D 和 3D)的综合教育软件。
哪种语言(处理、javascript 或其他)最适合我的目的?
我将开发一个在浏览器上运行并具有许多可视化和模拟工作(静电和电磁可视化、2D 和 3D)的综合教育软件。
哪种语言(处理、javascript 或其他)最适合我的目的?
这个问题确实很广泛,但我会根据我的经验来回答。
Javascript 并不是真的要进行数学计算,这可能是快速计算大量 E&M 现象所必需的(特别是如果它们没有表示为封闭形式的解决方案)。它还涉及到您想要在图表中包含多少细节(更多步骤 = 更多计算)。您可能会发现自己需要进行更多优化以弥补性能差异。
我在 Flash 中做了一些天线阵列的可视化(他们有封闭形式的解决方案,只有简单的阵列),结果很好。Javascript 绝对无法与您可能想做的任何 3D 模拟相提并论。
我想知道 Silverlight 是否是一个更好的解决方案,因为您可能会发现 .NET 的数学库比 Actionscript 的要多,这可以为您节省大量自己编写数学的工作(但您可能最终还是会这样做,因为性能问题)。
对于您正在寻找的东西,Flash 可能是目前更常见的应用程序堆栈,但 Silverlight 正准备根据它所包含的强大功能从它们那里获得称号。
我自己会去 Flex 或 Silverlight
我有点晚了,但是你想要的,已经用 JavaScript 实现了,你会发现这非常有用。我建议在 Chrome 下运行它,因为 JS 处理引擎非常快。(您甚至可能想尝试更快的 Chrome 2)
另见: http: //www.chromeexperiments.com/
我赞同 LFSR Consulting 的观点:Processing 被大量用于教育目的,它是免费的,而且速度快(Java 通常比 Flash 快)并且易于学习,因此您可以获得更快的结果。它支持 3D,您可以处理用于模拟和计算的 Java 库等。它有一个很棒的社区!:-)
JavaScript 对于这种用法有点轻。JavaFX 被炒作了,但它还不是真正的 3D(尽管有人使用 Java3D)而且它仍然有点年轻。
Flash 和 Silverlight:不予置评,在该领域没有太多经验。OpenLazlo 可以是一个替代方案......
您确实有两种选择 Flash 中的 ActionScript 或 Silverlight 中的 VB.NET/C#/other。
因此,首先您需要确定您将针对哪些平台。
您可能应该尝试 python。它是用于教育和计算目的的非常好的语言,它有一个相当不错的社区,而且语法也不是那么难。即使它是为命令行设计的,您也可以使用一些外部包为其创建前端 gui,它还提供Scipy、Numpy和Matplotlib等包,用于高级绘图和数据可视化。
您可以将问题分为两部分,用户交互和显示部分,以及繁重的计算部分。
如果您可以将繁重的计算移至服务器,那么您仍然可以在 javascript 中显示所有内容。
javascript 的一个困难是它是被解释的,你需要自己编写更多的方程,所以会影响性能和开发时间,但它可以在没有任何插件的情况下工作,除非你不想在画布标签。
Flash 和 Silverlight 可能有更好的选择,但是您正在学习新语言并需要插件,具体取决于您要使用的 Flash 版本。
查看 processing.js、xcode 和 iprocessing!ProcessingJS 非常适合数据可视化,但缺乏交互性。