我试图通过两个或三个相交的圆来获取轮廓产生的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
答案 0 :(得分:1)
如果您具有MATLAB R2017b或更高版本,请使用the new polyshape
type。它们具有union
和intersect
方法(问题是指“相交曲线”,但我感觉您正在寻找两种形状的结合)。看起来像:
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