我们如何增加/减少三角形的三角测量的数量创造了从polyshape对象?

40视图(30天)
我写了下面的代码:
C1 = polyshape (X1, Y1);
C2 = polyshape (X2, Y2);
C =减去(C1, C2);
T =三角(C);
X1, X2, Y1和Y2是列向量x - &坐标点定义的外部和内部边界地区。最后一个命令打破了地区C成三角形。我的问题是:我们如何增加或减少numbr triangualtion三角形的还是固定的?

答案(3)

马特·J
马特·J 2023年5月20日19:23
编辑:马特·J 2023年5月20日19:23
增加三角形的数量,您必须添加顶点沿边缘,像在以下:
p1 = polyshape ([0,0;1 0;0 1]);
p2 = polyshape ([0, 0,;1 0;0.5,0.5,0,1],“简化”,0);
doPlot (p1)
doPlot (p2)
函数doPlot (p)
情节(p,“FaceColor”,‘g’);持有
triplot(三角(p),“r”);持有
平等的
结束
4评论
萨阿德Mansoor
萨阿德Mansoor 2023年5月22日在25
Matt &图像分析师感谢您的有价值的输入。是的,当我使用“简化”,0)polyshape命令它开始工作。所以我得到如下所示的两个数字。traingles跨越整个六角环的宽度。知道如何有更小的三角形吗?

登录置评。



马特·J
马特·J 2023年5月22日6
编辑:马特·J 2023年5月22日在8:02
另一种方法:
p1 = nsidedpoly (6);
p2 = p1.scale (0.5);
P =减去(p1, p2);
P = subTri (P);
i = 1:3
P = splitTri (P);
结束
情节(P);轴平等的
函数p = subTri (p)
%细分一个标量polyshape P矢量三角形sub-polyshapes
T =三角(P);
V = T.Points;
我=身高(T): 1:1
p (i) = polyshape (V (T(我,:):));
结束
p = p (:)”;
结束
函数pnew = splitTri (p)
%的一个向量三角形polyshapes, p,每个p (i)分割成更小的
%三角polyshapes。
如果isscalar (p)
V = interp1 (p.Vertices ((1、2、3、1):), 1:0.5:3.5);
pnew = subTri (polyshape (V,“简化”,0));
其他的
C = arrayfun (@splitTri, p,“大学”,0);
pnew = (C {:});
结束
结束

类别

找到更多的在基本的多边形帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!