数学绘图

时间:2013-12-16 22:02:53

标签: performance plot comparison

我想创建一个绘制数学函数的应用程序,我想知道它的最佳语言。它应具有以下功能:

  • 绘制功能的区域。
  • 支持抗锯齿。
  • 用于更改其他因变量的滚动条(y =(x-a)* x中的 a )。
  • 它应该足够快(计算将完成数百次)。
  • 使用正则表达式解析数学表达式(有更好的方法吗?)。

任何其他建议都会有用。

编辑:这在许多方面都很有用,例如丢弃重复计算

ex:使用1000点绘制y = 4 + 1有999次重复计算,使用仅重新计算具有更改子项的节点的树模型可以增强性能

2 个答案:

答案 0 :(得分:2)

正则表达式不会解析数学表达式。 就个人而言,我编写了递归下降解析器。你可能会感到惊讶它是多么容易和灵活。

如果你希望输出看起来像是连续变化,当它实际上不是时,我所做的就是不输出到输出窗口。 而是我绘制到一个内存位图,然后我将其块转移到可见窗口。 这样可以消除所有闪烁,并使其看起来更快,即使它实际上每秒只重画几次。

请记住,你的时间浪费更可能是绘画,而不是计算,所以不要浪费时间试图找出如何优化计算。

就“最好的语言”而言,这取决于你想要做什么。 我已经用C,C ++和C#完成了所有这些。 我确信Java或其他编译语言也能正常工作。

答案 1 :(得分:1)

我认为没有“最好的语言”,但我可以给你一些提示。我认为一种方法是使用C ++和gnuplot库。另一种方法是将C ++与Qt和qwt库一起使用。 Qt也可以轻松管理正则表达式。

最新的是我个人在过去的工作中使用过的解决方案并没有特别的问题,而第一个只是一个理论上的想法。