2

是否可以在 Oxyplot 中绘制某个积分的面积?

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

4

1 回答 1

3

我不是这方面的专家,但我可能找到了一些对你有帮助的东西……看看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,您应该会看到与您在上面的评论中发布的类似的图。

我希望这对你有用。

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

事实证明,您实际上可以按照评论中的要求进行操作。您只需要填写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;

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

于 2015-10-14T07:21:06.283 回答