在各点之间均匀分配重量

时间:2015-03-19 18:14:50

标签: c# physics

我正在开发BeamNG的应用程序,用户进入其重心和物理结构的总重量,然后程序将加载到结构的所有XYZ位置,并在KG中单独加权每个点。

有人在这背后有数学吗?程序会将每个点加载到XYZ坐标中并具有坐标计数,并且它还具有XYZ坐标中的重心。

2 个答案:

答案 0 :(得分:1)

设置每个点XYZ是Pi =(xi,yi,zi)并且每个点的权重是Wi,你可以用这种方式计算CoG =(xc,yc,zc):

xc = ( W1*x1 + W2*x2 + ... + Wn*xn ) / ( W1 + W2 + .... + Wn )

yc = ( W1*y1 + W2*y2 + ... + Wn*yn ) / ( W1 + W2 + .... + Wn )

zc = ( W1*z1 + W2*z2 + ... + Wn*zn ) / ( W1 + W2 + .... + Wn )

答案 1 :(得分:0)

我会尝试这样做:

  1. compute CoG.x
  2. 将其与预定义的CoG0.x进行比较
    • 如果不为零则从左向右移动一些重量
    • 或反向(取决于CoG0.x-Cog.x符号)
    • CoG0.x-Cog.x幅度
    • 衡量重量
    • 以及距离CoG0
    • 的源和目标质点位置的距离
    • 这也可以通过统一改变所有点而不仅仅是两个
    • 来完成
    • 只需按相对位置划分点数到CoG0左右......
  3. 循环并将准确度提高到某个阈值/递归层......
  4. 以相同的方式处理y,z坐标
  5. 完成循环后整整几次迭代地接近结果
    • 因为近似每个轴可以改变其他轴
    • 以避免您应该选择接近x,y,z轴的点