Matlab中两条相交曲线的轮廓
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
答案
如果你有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
以上是关于Matlab中两条相交曲线的轮廓的主要内容,如果未能解决你的问题,请参考以下文章