Matlab中两条相交曲线的轮廓

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab中两条相交曲线的轮廓相关的知识,希望对你有一定的参考价值。

我试图得到x和y坐标,轮廓由两个或三个相交的圆产生,如图所示。下面提供了两个圆圈的坐标。

我们怎样才能使用Matlab自动完成?

我有数百个这样的数字。

我想要的只是得到最终形状的x和y坐标。

enter image description here

   X          Y
 ================
 1.0000         0
 0.9848    0.1736
 0.9397    0.3420
 0.8660    0.5000
 0.7660    0.6428
 0.6428    0.7660
 0.5000    0.8660
 0.3420    0.9397
 0.1736    0.9848
 0.0000    1.0000
-0.1736    0.9848
-0.3420    0.9397
-0.5000    0.8660
-0.6428    0.7660
-0.7660    0.6428
-0.8660    0.5000
-0.9397    0.3420
-0.9848    0.1736
-1.0000    0.0000
-0.9848   -0.1736
-0.9397   -0.3420
-0.8660   -0.5000
-0.7660   -0.6428
-0.6428   -0.7660
-0.5000   -0.8660
-0.3420   -0.9397
-0.1736   -0.9848
-0.0000   -1.0000
 0.1736   -0.9848
 0.3420   -0.9397
 0.5000   -0.8660
 0.6428   -0.7660
 0.7660   -0.6428
 0.8660   -0.5000
 0.9397   -0.3420
 0.9848   -0.1736
 1.0000   -0.0000

较小圆圈的坐标:

   x          y
 ================
 1.4000         0
 1.3939    0.0695
 1.3759    0.1368
 1.3464    0.2000
 1.3064    0.2571
 1.2571    0.3064
 1.2000    0.3464
 1.1368    0.3759
 1.0695    0.3939
 1.0000    0.4000
 0.9305    0.3939
 0.8632    0.3759
 0.8000    0.3464
 0.7429    0.3064
 0.6936    0.2571
 0.6536    0.2000
 0.6241    0.1368
 0.6061    0.0695
 0.6000    0.0000
 0.6061   -0.0695
 0.6241   -0.1368
 0.6536   -0.2000
 0.6936   -0.2571
 0.7429   -0.3064
 0.8000   -0.3464
 0.8632   -0.3759
 0.9305   -0.3939
 1.0000   -0.4000
 1.0695   -0.3939
 1.1368   -0.3759
 1.2000   -0.3464
 1.2571   -0.3064
 1.3064   -0.2571
 1.3464   -0.2000
 1.3759   -0.1368
 1.3939   -0.0695
 1.4000   -0.0000
答案

如果你有MATLAB R2017b或更新,请使用the new polyshape type。这些有unionintersect方法(问题是指“交叉曲线”,但我感觉你正在寻找两种形状的结合)。这看起来像:

p1 = [
 1.0000         0
 0.9848    0.1736
 0.9397    0.3420
 0.8660    0.5000
 0.7660    0.6428
 % ... etc.
 ];
p2 = [
 1.4000         0
 1.3939    0.0695
 1.3759    0.1368
 1.3464    0.2000
 1.3064    0.2571
 % ... etc.
 ];
p1 = polyshape(p1);
p2 = polyshape(p2);
p3 = union(p1,p2);

您可以使用plot绘制形状:

plot(p1)
hold on
plot(p2)
plot(p3)
axis equal

以上是关于Matlab中两条相交曲线的轮廓的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中怎么求两条曲线的交点并标注

matlab中怎么求两曲线交点

matlab编程求两条直线的交点

测试 R 中两条生存曲线是不是不同

在3D中两条射线的相交性检测

怎样去掉visio中两条线之间的凸点