MATLAB:绘制图形的面积和质心

时间:2016-03-21 13:46:22

标签: matlab

我创建了一个允许用户绘制多个点并插入这些点的函数。我希望函数使用这个向量计算质心: Omega is part of R^n

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

然而,由于我是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

1 个答案:

答案 0 :(得分: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')
假设所有点的权重相等,

应该给你质心。