【问题标题】:MATLAB: Area and centre of mass of a plotted figureMATLAB:绘制图形的面积和质心
【发布时间】:2016-03-21 13:46:21
【问题描述】:

我制作了一个函数,允许用户绘制多个点并插入这些点。我希望函数使用此向量计算质心:

我想我应该首先计算图形的面积(我画了这个例子来说明函数输出)。我想使用格林定理 来做到这一点

但是,由于我是 MATLAB 的初学者,所以我一直不知道如何实现这个公式来找到质心。我也不确定如何获取数据,因为到目前为止我的输出只是点的 x 和 y 坐标。

function draw
fig = figure();
hax = axes('Parent', fig);
axis(hax, 'manual')
[x,y] = getpts();

M = [x y]

T = cumsum(sqrt([0,diff(x')].^2 + [0,diff(y')].^2));

T_i = linspace(T(1),T(end),1000);

X_i = interp1(T,x',T_i,'cubic');
Y_i = interp1(T,y',T_i,'cubic');

plot(x,y,'b.',X_i,Y_i,'r-')
end

【问题讨论】:

    标签: matlab


    【解决方案1】:

    2D 坐标系的质心应该只是插值 x 坐标和 y 坐标的mean。插值应该为您提供均匀分布的坐标,您可以利用它来发挥自己的优势。所以只需添加到您现有的功能:

     CenterOfMass= [mean(X_i),mean(Y_i)]
     plot(x,y,'b.',X_i,Y_i,'r-')
     hold on
     plot(CenterOfMass(1),CenterOfMass(2),'ro')
    

    假设所有点的权重相同,应该给你质心。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      相关资源
      最近更新 更多