【问题标题】:Can I draw the area of an integral with Oxyplot?我可以用 Oxyplot 绘制积分的面积吗?
【发布时间】:2015-09-25 18:54:24
【问题描述】:

在Oxyplot中可以画出某个积分的面积吗?

使用MathNet.Numerics 库可以计算这些积分,但我想知道是否可以在我的绘图中绘制它?

【问题讨论】:

  • 您好。您能否附上从 MathNet.Numerics 获得的所需内容的示例图,以及为您提供该示例的代码?
  • 嗨,谢谢你的回答,这段代码给了我积分的面积(-x²+50):Integrate.OnClosedInterval(x => -1 * (x * x) + 50, 0, 5),我希望它看起来像这样:img5.fotos-hochladen.net/uploads/test08jlxdp3k4.png
  • 该绘图图像是由Integrate.OnClosedInterval() 调用绘制的吗?
  • 不,只是一个数字。
  • 我明白你现在在说什么了。 MathNet.Numerics 进行积分,您希望它由 Oxyplot 绘制。我不知道这两个库中的任何一个。希望有人看到你的问题。祝你好运。

标签: c# integral oxyplot mathnet-numerics


【解决方案1】:

我不是这方面的专家,但我可能找到了一些对你有帮助的东西...... 看看AreaSeries。我想这就是你需要的。

例子:

        var model = new PlotModel { Title = "AreaSeries" };

        var series = new AreaSeries { Title = "integral" };
        for (double x = -10; x <= 10; x++)
        {
            series.Points.Add(new DataPoint(x, (-1 * (x * x) + 50)));
        }

        model.Series.Add(series);

然后您将模型设置为您的PlotView.Model,您应该会看到与您在上面的 cmets 中发布的类似的图。

我希望这对你有用。

----- 编辑(因为答案中有评论)-----

事实证明,您实际上可以按照您在 cmets 中的要求进行操作。您只需在AreaSeries.Points2 中填写您想要限制您的区域的点。例如,在我之前的示例中,在 for 内添加以下行

series.Points2.Add(new DataPoint(x, x));

然后您将拥有由两行定义的区域:y = -x^2 + 50y = x。您甚至可以将第二行设置为透明。

完整示例:

        var model = new PlotModel { Title = "AreaSeries" };

        var series = new AreaSeries { Title = "series" };
        for (double x = -10; x <= 10; x++)
        {
            series.Points.Add(new DataPoint(x, (-1 * (x * x) + 50)));
            series.Points2.Add(new DataPoint(x, x));
        }
        series.Color2 = OxyColors.Transparent;

        model.Series.Add(series);

        plotView.Model = model;

现在您只需添加所需的公式,它应该会显示与您在评论中输入的图表相似的图表。

【讨论】:

  • 虽然它不适用于各种功能:pic-upload.de/view-28746614/integral.png.html
  • 没错。最后一张图有点复杂……你能把曲线的方程写出来吗?我会考虑一下,看看我能不能来点什么技巧
  • 我刚刚更新了答案。看一看。事实证明这很简单。只需将第二个系列添加到“series.Points2”即可开始使用!
猜你喜欢
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多