【问题标题】:Evenly distributing weight among points在点之间平均分配权重
【发布时间】:2015-03-19 18:14:49
【问题描述】:

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

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

【问题讨论】:

  • 你的意思是用户输入结构的重心、结构的重量、XYZ,程序只会计算出点的权重吗?
  • 用户输入重心和重量,然后从文件中加载点,我可以处理这部分但不知道数学。
  • 数学到底要做什么......?你的问题并不完全清楚
  • 我从来都不擅长用词大声笑,对不起。
  • 计算每个点的质量以使 CoG 成为 CoG。每个点都有自己的权重,但这意味着 CoG 默认位于点密度最大的区域。

标签: c# physics beamng


【解决方案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 )

【讨论】:

    【解决方案2】:

    我会尝试这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多