是否可以在Oxyplot中绘制某个积分的区域?
使用MathNet.Numerics
库可以计算这些积分,但我想知道我是否能够在我的情节中绘制它?
答案 0 :(得分: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 + 50
和y = 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;
现在您只需要添加所需的公式,它应该显示与您在评论中放置的图形类似的图形。