【问题标题】:What happens when you apply force to the edge of an object? [closed]当你对物体的边缘施加力时会发生什么? [关闭]
【发布时间】:2018-12-05 05:38:23
【问题描述】:

我正在尝试用 C# 构建一个 2D 物理引擎(刚体动力学模拟)。到目前为止,我已经模拟了不同大小的盒子(正方形),它们的位置是固定的,但当对它们施加力时,它们可以围绕它们的质心(质心)旋转。这是施加力时调用的Box.ApplyForce() 方法:

    public void ApplyForce(double x, double y, Vector force)
    {
        //angular acceleration = torque(angular force) / moment of inertia
        Force tempForce = new Force(x, y, force.X, force.Y);
        forceList.Add(tempForce);

        Vector displacement = new Vector(x, y);

        double torque = displacement.X * tempForce.yForce - displacement.Y * tempForce.xForce;

        double momentOfInertia = (mass*(size*size*2))/12;

        angularAcceleration += torque / momentOfInertia;
    }

到目前为止,这似乎工作正常,但我现在需要在我的模拟中包括平移加速度,所以我的问题是:当你向边缘(或任何非质心点)施加力时会发生什么对象?平移加速度是否与施加在质心上的加速度相同?

【问题讨论】:

  • 这不是一道物理题,而不仅仅是一道编程题吗?
  • 我建议你看看physics.stackexchange.com
  • 我投票结束这个问题,因为它是一个物理问题而不是编程问题。
  • 回答您的问题:是的,施加在身体任何部位的力的平移加速度将与施加在质心上的力相同。

标签: c# simulation physics


【解决方案1】:

在模拟平移运动时,这些模拟正方形是否位于平面上?受力时它们能旋转,还能平移吗?

如果盒子位于平面上,则在您模拟平移加速度时它无法旋转,则施加力的位置无关紧要。它只关心施加力的角度,或力矢量在平移运动方向上的分量。垂直于表面的矢量分量会影响法向力的大小,如果您正在考虑这一点,这将影响摩擦力。

如果盒子不在表面上并且在施加力时只是漂浮在空间中,那么答案会变得有点复杂。也许再澄清一下你在模拟什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 2018-06-20
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多