C# MS 图表从通用 X 获取 Y 值
C# MS Charts get Y value from a generic X
我有一个包含 3 条线的图表,它们都是动态的(点序列随时变化)。
对于两条线,我有几个点,最多 20 个,而对于另一条线,即样条线,最多 500 个。(始终在相同的 x 范围内)
我必须验证样条曲线是否在另外两条线之间。
换句话说,对于样条曲线的每个点,获取所有直线的 Y 值并验证它是否在范围内。
我怎样才能做到这一点?
我已经尝试了以下代码,但是当我调用其他两条线中未定义的 X 点时,我将只有样条曲线的 Y 值:
var a = chart1.Series.Select(series => series.Points.Where(point => point.XValue == 7).ToList()).ToList();
关注图样的图像:
蓝线和黄线是“未定义”的线,我必须验证红线是否留在它们之间
与其说是图表问题,不如说是数学问题。
要确定中线在上限和下限之间,归结为边界的线性插值。
假设您的上限 (ub) 定义在五个点上:1、2、5、6、9。
进行线性插值的简单方法是找到两个最近的邻居并进行加权平均。例如ub(5.5) = ub(5)/2 + ub(6)/2
有很多方法可以进行一维线性插值,如果您在 Whosebug 上搜索它,您应该能够找到现有的解决方案。
我有一个包含 3 条线的图表,它们都是动态的(点序列随时变化)。 对于两条线,我有几个点,最多 20 个,而对于另一条线,即样条线,最多 500 个。(始终在相同的 x 范围内)
我必须验证样条曲线是否在另外两条线之间。 换句话说,对于样条曲线的每个点,获取所有直线的 Y 值并验证它是否在范围内。
我怎样才能做到这一点?
我已经尝试了以下代码,但是当我调用其他两条线中未定义的 X 点时,我将只有样条曲线的 Y 值:
var a = chart1.Series.Select(series => series.Points.Where(point => point.XValue == 7).ToList()).ToList();
关注图样的图像:
蓝线和黄线是“未定义”的线,我必须验证红线是否留在它们之间
与其说是图表问题,不如说是数学问题。 要确定中线在上限和下限之间,归结为边界的线性插值。
假设您的上限 (ub) 定义在五个点上:1、2、5、6、9。 进行线性插值的简单方法是找到两个最近的邻居并进行加权平均。例如ub(5.5) = ub(5)/2 + ub(6)/2
有很多方法可以进行一维线性插值,如果您在 Whosebug 上搜索它,您应该能够找到现有的解决方案。