我将开发一款全面的教育软件,它可以在浏览器上运行,并具有许多可视化和模拟工作(静电和电磁场的可视化、2D和3D)。
哪种语言(Processing、JavaScript或其他)最适合我的目的?
我将开发一款全面的教育软件,它可以在浏览器上运行,并具有许多可视化和模拟工作(静电和电磁场的可视化、2D和3D)。
哪种语言(Processing、JavaScript或其他)最适合我的目的?
这个问题确实很广泛,但我将从我的经验回答。
Javascript并不是真正用于数学计算的,而这可能是快速计算许多电磁现象所必需的(特别是如果它们没有表示为封闭形式的解)。这确实涉及到您在图表中想要多少细节(更多步骤=更多计算)。您可能需要进行更多的优化来弥补性能差异。
我在Flash中对天线阵列进行了一些可视化(它们有封闭形式的解,只有简单的阵列),效果还不错。Javascript绝对无法达到您可能想做的任何3D模拟。
我想知道Silverlight是否会是一个更好的解决方案,因为您可能会发现.NET中有更多的数学库,而不是Actionscript,这可以节省您写出数学公式的大量工作(但由于性能问题,您最终可能仍然需要这样做)。
目前来看,Flash可能是您正在寻找的更常见的应用程序栈,但Silverlight似乎准备通过其包含的强大功能夺得这一称号。
我个人会选择使用Flex或Silverlight
我支持LFSR咨询的观点:Processing 在教育方面使用广泛,它是免费的、速度快(Java一般比Flash更快)且易于学习,因此可以更快地获得结果。它支持 3D,您可以使用 Java 库进行模拟和计算等。而且它还有一个伟大的社区! :-)
JavaScript 对于这种用途来说有些轻微。JavaFX 很受欢迎,但它实际上并没有 3D 功能(虽然可以使用 Java3D)。而且它还比较年轻。
Flash 和 Silverlight:没有意见,在这个领域没有太多经验。OpenLazlo 可以作为一个替代选择...
你应该尝试一下Python。它是一种非常适合教育和计算目的的语言,拥有相当不错的社区,语法也不是很难。即使它最初是为命令行设计的,但你可以使用一些外部包创建前端GUI。此外,它还提供了像Scipy、Numpy和Matplotlib这样的包,用于高级绘图和数据可视化。
在编程方面,你真的有两种选择:Flash中的ActionScript或Silverlight中的VB.NET/C#/其他语言。
因此,首先你需要决定要针对哪个平台进行开发。
你可以将问题分为两个部分,用户交互和显示部分以及繁重的计算部分。
如果你可以将繁重的计算移动到服务器上,那么你仍然可以在javascript中显示所有内容。
Javascript的一个困难是它是解释性的,你需要自己编写更多的方程式,因此会有性能损失和开发时间,但它将没有任何插件工作,除非你不想在canvas标记中使用3D。
Flash和Silverlight可能有更好的选择,但这样你就需要学习新的语言并需要插件,具体取决于你想使用哪个版本的Flash。
看看processing.js、xcode和iprocessing吧!ProcessingJS非常适合数据可视化,但交互性不足。