首页 > 解决方案 > Matlab中两条相交曲线的轮廓

问题描述

我试图通过两个或三个相交的圆圈来获得轮廓产生的 x 和 y 坐标,如图所示。两个圆的坐标如下所示。

我们如何使用 Matlab 自动执行此操作?

我有数百个这样的数字。

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

在此处输入图像描述

   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

标签: matlabgeometry

解决方案


如果您有 MATLAB R2017b 或更高版本,请使用polyshape类型. 这些有一个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

推荐阅读