2010-05-14 40 views
6

我知道如何找到正多边形的质心(质心)。这假设多边形的每个部分重量相同。 但是,如何计算一个无重量的多边形(由气凝胶制成),其中每个顶点都有一个重量?找到带加权顶点的多边形的质心

我的意思用直线简体说明:

5kg-----------------5kg 
      ^center of gravity 

10kg---------------5kg 
     ^center of gravity offset du to weight of vertices 

当然,我知道如何计算重力对加权顶点的直线的中心,但我要如何做它在一个多边形加权顶点?

谢谢你的时间!

+0

那么这是一种“不与编程有关”,尽管我喜欢数学问题。 – 2010-05-14 08:31:13

回答

13

您想对所有顶点进行加权平均。所以说你的顶点是质量为m1,m2 ... mn的v1,v2,v3 .... vn,并且有x和y坐标v1x,v1y,v2x,v2y等,然后得到质心(cx,cy)你想要:

cx = (v1x*m1 + v2x*m2 + ... vnx*mn)/(m1 + m2 .... mn) 
cy = (v1y*m1 + v2y*m2 + ... vny*mn)/(m1 + m2 .... mn) 

它基本上是一样的原则,当你做一条线。

+0

太好了,谢谢! – 2010-05-14 11:05:45

+0

其实你可以称这个质心的定义:) – 2010-05-14 17:44:05

0

的表现公式将是:

了Mc =(sum_from_0_to_max(顶点)(M_I * P_I)/ M)

其中MC为质心,M_I是顶点i的质量,P_I位置和总体质量。

试着谷歌的“刚体”,我想你会发现很多有用的信息。

编辑:

在代码将是事端这样的:

的Vector3D结果; //用0,0,0初始化
Vector3D temp; // sum
long sumMasses = 0; (顶点v:顶点){
(temp.Phontol.com);
sumMasses + = v.mass;
}
result = temp/sumMasses;

5

1)产生每个顶点

2的向量)乘以每个矢量用于顶点

3的重量)之和矢量

4)划分为总质量

5)你的大众中心!

+0

OMG。 。 。 。 。 。 。 – 2010-05-14 08:39:32

+0

@Camilo Martin为什么?它有什么问题? – nico 2010-05-14 09:47:51

+0

没问题。我认为他只是喜欢它的简单:) – pheelicks 2010-05-14 11:44:48

相关问题