Main Content

centroid

polyshape 的矩心

说明

示例

[x,y] = centroid(polyin) 返回 polyshape 的矩心的 x 坐标和 y 坐标。

示例

[x,y] = centroid(polyin,I) 返回 polyin 的第 I 个边界的矩心坐标。

仅当 polyin 是标量 polyshape 对象时,才支持此语法。

示例

全部折叠

计算包含多个区域的多边形的矩心。

创建包含两个实心区域的多边形,然后计算多边形的矩心。

x1 = [0 1 2];
y1 = [0 1 0];
x2 = [2 3 4];
y2 = [1 2 1];
polyin = polyshape({x1,x2},{y1,y2});
[x,y] = centroid(polyin);
plot(polyin)
hold on
plot(x,y,'r*')
hold off

要分别计算每个区域的矩心,请在第二个参量中指定每个区域的边界索引。

[x,y] = centroid(polyin,[1 2]);
plot(polyin)
hold on
plot(x(1),y(1),'r*',x(2),y(2),'r*')
hold off

也可以先将区域分成单独的 polyshape 对象,然后计算每个区域的矩心。使用 regions 函数创建一个由 polyshape 对象组成的数组,数组中的每个元素是一个 polyshape,用于定义一个三角形区域。

polyarray = regions(polyin)
polyarray = 
  2x1 polyshape array with properties:

    Vertices
    NumRegions
    NumHoles

[x,y] = centroid(polyarray)
x = 2×1

     1
     3

y = 2×1

    0.3333
    1.3333

输入参数

全部折叠

输入 polyshape,指定为标量、向量、矩阵或多维数组。

数据类型: polyshape

边界索引,指定为整数标量或由整数组成的向量。I 的每个元素对应于输入 polyshape 的一个边界。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参量

全部折叠

polyshape 的矩心的 x 坐标,以标量、向量、矩阵或多维数组形式返回。如果输入是由 polyshape 对象组成的数组,则 x 包含每个 polyshape 的矩心的 x 坐标。

polyshape 的矩心的 y 坐标,以标量、向量、矩阵或多维数组形式返回。如果输入是由 polyshape 对象组成的数组,则 y 包含每个 polyshape 的矩心的 y 坐标。

扩展功能

版本历史记录

在 R2017b 中推出

另请参阅

| |