我启动此线程,要求您在Excel中提供帮助。 主要目标是确定由点建模的两条曲线(曲线A,曲线B)之间的交点P =(x,y)的坐标。 曲线是非线性的,并且每个定义点都是使用复杂的方程式确定的(方程式由用户选择的许多参数决定,并且用户将选择定义曲线精度的点数)。也就是说,根据输入参数,每条曲线(曲线A和曲线B)在XY平面上始终变化(Z坐标始终为零,我们在XY平面上工作),并且定义点的数量也为根据用户的选择。
我的第一个尝试是通过每条曲线的趋势方程式确定交点(我使用LINEST函数确定多项式方程式的系数),并通过求解将其放入系统中的解决方案。问题在于Excel不能很好地对曲线进行插值,因为它们太宽,因此交点(系统的解)与实际解相差很远。 然后,我想做的是缩短点的范围,以便能够为曲线找到两个定义的趋势方程,切掉不存在交点的曲线部分。
今天,为了找到解决方案,我使用3阶多段样条在Siemens NX cad上绘制了曲线,然后可以轻松地找到交点的坐标。请注意,由于曲线A和曲线B的近似值,我使用多段样条线来更加精确。
由于我想避免使用CAD工具并始终保持在Excel上,因此有一种方法可以选择一个较短范围的定义点(靠近交点),以便更好地用趋势方程式近似曲线A和曲线B(线性4点和三阶样条函数),然后找到解决方案?
我附上一张图片,为您提供平面上曲线A和曲线B的示例: https://postimg.cc/MfnKYqtk
在以下链接中,您可以找到带有坐标点和曲线图的Excel文件: https://www.mediafire.com/file/jqph8jrnin0i7g1/intersection.xlsx/file
希望在您的帮助下解决此问题,谢谢! kalo86
答案 0 :(得分:0)
您的问题给了我一些思考和研究的机会。
在https://pomax.github.io/bezierinfo/
§27-交叉点(线-线交叉点)
和
§28-曲线/曲线交点
您的问题可以在Excel中解决。
关于Excel平滑线的奥秘,您可以在这里找到详细信息:
https://blog.splitwise.com/2012/01/31/mystery-solved-the-secret-of-excel-curved-line-interpolation/
该拟合的作者是来自www.xlrotor.com的PE。Brian T. Murphy博士。您可以在此处找到详细信息:
https://www.xlrotor.com/index.php/our-company/about-dr-murphy
https://www.xlrotor.com/index.php/knowledge-center/files
=>请参阅Smooth_curve_bezier_example_file.xls
https://www.xlrotor.com/smooth_curve_bezier_example_file.zip
将这些编织在一起可以得到给定曲线的交点的以下结果:
for the straight line intersection:
(x = -1,02914127711195 / y = 23,2340949174492)
for the smooth line intersection:
(x = -1,02947493047196 / y = 23,2370611219553)
要完全自动化您的任务,您需要添加更多有关所需精度的细节,以及需要进一步处理的细节(这实际上不是本网站的范围;-)。
直线的交点:
答案 1 :(得分:0)
解决方案
非常感谢您的回答,您将我的目标定为完美目标。 您的解决方案(用于平滑线)非常接近我在Siemens NX中确定的解决方案。 我将阅读提供的链接https://pomax.github.io/bezierinfo/上的文档,以便更好地理解该论点背后的数学原理。
然后,要继续我的请求,您已经能够找到两条曲线之间的交点的坐标(x,y),而无需通过非常精确的高级CAD系统。
最好的问候,我现在开始学习!
kalo86