freebird_zhou 发表于 2009-2-18 11:19:59

求教:求两条线的交点!

求教:有两个曲线的点数组,如何求两条曲线的交点?(交点不止一个)。

dingmanzhy 发表于 2009-2-18 12:45:05

楼上所指的交点,是要求坐标值完全一样吗

飞雨天 发表于 2009-2-18 13:20:48

解决一个问题的唯一途径,就是focus到这个问题的本质。
比如两条曲线的交点,那么,什么样子的点才算曲线交点呢?
从一个很直观上的回答,就是两条曲线中,x和y同时相等的点。
而经过一个工程实际的考虑,我们知道,手头拥有的不过是两组离散的点数据,所以,不能很苛刻的要求说x和y要同时相等,一定的偏差还是允许的。
点与点之间的偏离,当然可以用两点之间的距离来表达。
一个很费时间的算法,就是从曲线1上拿一个点,然后计算曲线2上所有点与它的距离,如果在误差之内,就说两个点是相交的。
稍微改进一点的是,没必要取曲线2上所有的点,那些x坐标相差太大的,肯定不是交点。
在网吧,没办法给程序,自己谢谢咯。。。。好运!

freebird_zhou 发表于 2009-2-19 09:42:22

感谢两位大大,理论上的交点,是x和y相等的点,如飞雨天所说的,离散的点数据,一定有偏差,也想过一些方法:
1、取曲线一上的x点,索引曲线2上的y值,与曲线一上的y值比较,组成数组,取最小值的索引,那个点对应的,就应该是交点,但是,交点不止一个,所以,比较麻烦。
2、担心两个曲线点数组比较“稀疏”,这样取的点,误差比较大,所以想用Δx,用插值的方法,取两条曲线上的值做比较,接近与0的,就是交点,但是,LabView体统的插值函数,有诸多限制,而且误差值也比较难确定,所以也比较难做。
还请诸位大大,不吝赐教啊。谢谢allqq-mogudiandian-36all

rongcheng0501@1 发表于 2009-2-19 16:48:50

可以把图形重新密集采样,这样就可以控制误差了

freebird_zhou 发表于 2009-2-19 17:08:33

感谢热心关注,还是有点儿问题,比如一个椭圆点数组,x间隔为1,要是重新密集采样,就需要插值,但是LabView提供的插值算法,只能x递增,所以比较难做。

飞雨天 发表于 2009-2-23 13:15:19

啊。。。原来如此,不过lv的插值是否如你所说,我没去看过,现在没有环境。
如果真是那样,那就把一个多值函数分成多个单值的来做,不知道可不可以?
当然,我们不知道实际一个背景,所以想问题可能有所简单,还请见谅。。

freebird_zhou 发表于 2009-2-25 10:13:57

多谢关注,已经解决,没有用直接取值计算的方法,用相交穿越的时候,差值正负的方法。allqq-mogudiandian-32all

爱国者 发表于 2017-8-22 09:45:29

有用,看一下
页: [1]
查看完整版本: 求教:求两条线的交点!