C# 图中两条样条曲线交点的搜索

C# 图中两条样条曲线交点的搜索,c#,.net,graph,spline,C#,.net,Graph,Spline,我被困在这一点上。我试图找出图中两条线的交点。每个样条曲线有10个点,但它们在这两个点之间相交 我使用的是c#graph。(System.Windows.Forms.DataVisualization.Charting.Chart chart2;) 你有办法解决这个问题吗 情况就是这样。点是手动测量的,因此在给定的点上有最小的可能性 按照Matthew的建议,将样条曲线细化到所需的精度,然后与(直线)线对相交。如果您选择正确的数据结构来存储线段,以便它支持快速范围查询(可能是kd树?),那么这可

我被困在这一点上。我试图找出图中两条线的交点。每个样条曲线有10个点,但它们在这两个点之间相交

我使用的是c#graph。(System.Windows.Forms.DataVisualization.Charting.Chart chart2;) 你有办法解决这个问题吗

情况就是这样。点是手动测量的,因此在给定的点上有最小的可能性


按照Matthew的建议,将样条曲线细化到所需的精度,然后与(直线)线对相交。如果您选择正确的数据结构来存储线段,以便它支持快速范围查询(可能是kd树?),那么这可以非常有效地完成


我想,从分析的角度进行分析将非常困难。

按照马修的建议,将样条曲线细化到所需的精度,然后与(直线)线对相交。如果您选择正确的数据结构来存储线段,以便它支持快速范围查询(可能是kd树?),那么这可以非常有效地完成



我想用解析的方法来做会很困难。

我找到了答案,我用最小二乘理论和多项式函数来表示曲线方程,然后解方程。如果有人需要解,就给我写信。

我找到了解,我用最小二乘理论和多项式函数来表示曲线方程,然后解方程。如果有人需要解决方案,请写信给我。

因为每条曲线只有10个点,所以可以检查每对可能的线段(每条曲线一条),看看它们是否相交。那就只有100张支票了。你知道如何检查两条线段是否相交吗?如果不是,。它们不会在此给定点上相交。我解决了如何检查两条线如何相交的问题,但我有曲线(分别是一条曲线和一条线);我是说你应该检查一下每一对线段是否相交。对不起,我的错,我没有得到它。因为它是测量晶体管,led二极管,以及,。。。我不能用这个。。。因为值将被丢弃。若我像你们想象的那个样做的话,样条曲线上的点和线的交点之间会有0,5V的差异。嗯,我明白了。交点将主要取决于所使用的样条曲线的类型。立方体的BSpline?如果您不是自己绘制样条曲线并使用第三方方法绘制样条曲线,则您可能很难准确了解第三方生成的点。由于每条曲线只有10个点,因此可以检查每对可能的线段(每条曲线一条)以查看它们是否相交。那就只有100张支票了。你知道如何检查两条线段是否相交吗?如果不是,。它们不会在此给定点上相交。我解决了如何检查两条线如何相交的问题,但我有曲线(分别是一条曲线和一条线);我是说你应该检查一下每一对线段是否相交。对不起,我的错,我没有得到它。因为它是测量晶体管,led二极管,以及,。。。我不能用这个。。。因为值将被丢弃。若我像你们想象的那个样做的话,样条曲线上的点和线的交点之间会有0,5V的差异。嗯,我明白了。交点将主要取决于所使用的样条曲线的类型。立方体的BSpline?如果您不是自己绘制样条曲线,而是使用第三方方法绘制样条曲线,那么您可能很难准确了解第三方生成的点。因为它是晶体管、led二极管,。。。我不能用这个。。。因为值将被丢弃。@dale“值将被丢弃”是什么意思?在样条曲线上找到这个值很重要。如果我像你们所希望的那样,把每一个点一条线连接到下一个点,就会有差异,例如0,5V。而另一个使用这个被丢弃的值(不太准确)的计算将破坏最终的解析。这里的差异0,5V可以通过计算产生最终的差异2V。这就是为什么我建议首先细化样条曲线-您始终可以在不改变结果形状的情况下向样条曲线添加点。现在添加足够多的点,使样条曲线上每个点的样条曲线插值和线性插值之间的误差足够小。或者,你可以在足够小的时间步长内遍历数据,只需比较这些时间步长上的电压(如果差异的符号改变,你就找到了一个交点)。我只会得到这10个点。所以我不能在这些线相交的点之间添加更多的点,因为这是对晶体管、led二极管,。。。我不能用这个。。。因为值将被丢弃。@dale“值将被丢弃”是什么意思?在样条曲线上找到这个值很重要。如果我像你们所希望的那样,把每一个点一条线连接到下一个点,就会有差异,例如0,5V。而另一个使用这个被丢弃的值(不太准确)的计算将破坏最终的解析。这里的差异0,5V可以通过计算产生最终的差异2V。这就是为什么我建议首先细化样条曲线-您始终可以在不改变结果形状的情况下向样条曲线添加点。现在添加足够多的点,使样条曲线上每个点的样条曲线插值和线性插值之间的误差足够小。或者,你可以在足够小的时间步长内遍历数据,只需比较这些时间步长上的电压(如果差异的符号改变,你就找到了一个交点)。我只会得到这10个点。因此,我将无法在这些线相交的点之间添加更多点。