贡献者: addis
intersect
决定两个多边形重合部分的多边形
alphaShape
确定 2D 或 3D 刚体的形状
inShape
判断一点是否在某个 alphaShape
的内部
intersect
测试结果
p1 = polyshape([0.425 0.284 0.335 0.482 0.388 0.425], ...
[0.715 0.610 0.371 0.453 0.584 0.715]);
p2 = polyshape([0.439 0.411 0.389 0.408 0.466 0.439], ...
[0.621 0.639 0.610 0.524 0.541 0.621]);
figure; subplot(1,2,1); plot(p1); hold on; plot(p2);
p3 = intersect(p1, p2);
subplot(1,2,1); plot(p3);
p1
的类型是 polyshape
,p1.Vertices
是 N*2
尺寸的顶点坐标。一个 polyshape
可以表示多个多边形,个数为 p3.NumRegions
。p3.Vertices
中用一行 [nan, nan]
隔开不同的多边形。如果 p3
是空的,那么 p3.Vertices
是空矩阵。
alphaShape
测试结果
[X,Y,Z] = sphere(20);
shp = alphaShape(X(:),Y(:),Z(:));
figure; subplot(1,2,1); plot(shp);
shp.Alpha = 2.5;
subplot(1,2,2); plot(shp);
inShape(shp, [1.01,0,0]); % 判断是否在内部