虽然FEX中已经存在的一些其他功能,但是计算曲线的交叉点,而这段短片代码是用速度写成的最高优先级。始终没有使用循环,充分利用MATLAB的矢量化功能
我欢迎任何意见,建议,错误报告等。
-----------------------------------------------------------------------------------------------
曲线的Interx交叉点
p = Interx(L1,L2)返回两个曲线L1的交叉点
和l2。曲线L1,L2可以闭合或打开并描述
通过双行矩阵,其中每行包含其x和y-坐标。
曲线组的交叉点(例如轮廓线,乘法
连接区域等)也可以通过将它们与a分开来计算
例如,NAN的列
l = [x11 x12 x13 ... nan x21 x22 x23 ......;
Y11 Y12 Y13 ... NaN Y21 Y22 Y23 ...]
p具有与L1和L2相同的结构,其行对应于
L1和L2的交叉点的X和Y-坐标。如果不
发现交叉路口,返回的p是空的。
p = Interx(L1)返回L1的自交叉点。保持
代码简单,曲线与自身相切的点是
不包含。P = Interx(L1,L1)返回曲线的所有点
与任何自交叉点一起。
例子:
t = linspace(0,2 * pi);
R1 = SIN(4 * T)+2;x1 = r1。* cos(t);Y1 = R1。* SIN(T);
R2 = SIN(8 * T)+2;x2 = r2。* cos(t);Y2 = R2。* SIN(T);
p = Interx([x1; y1],[x2; y2]);
绘图(X1,Y1,X2,Y2,P(1,:),p(2,:),'Ro')
ns(2021)。曲线交叉口(//www.tianjin-qmedu.com/matlabcentral/fileexchange/22441-curve-Intersections),Matlab中央文件兑换。检索到。