我正在使用Box2D来模拟在行星上行走的人。我计算了一个朝向行星中心的自定义重力,除了一个小故障外,它一直在正常工作:我正在使用的盒子作为当前人体的物理模型,它随行星旋转而旋转。我希望它始终是正确的方法。您如何建议我这样做?
我已经考虑过要在人的脚接触地面时获取重力 vector 并计算切向 vector ,但是我不确定如何做到这一点。如果这是最好的方法,请您说明如何实现?有没有更简单的方法?
最佳答案
有一种更简单的方法。
我假设“正确向上”是指脚应始终指向地球。
请执行下列操作:
如果这样做,棱柱形关节应注意使播放器保持所需的旋转方向。
如果您喜欢手动设置角度,我认为您可以使用atan2这样计算角度:
但是,这将以度为单位计算角度。您必须将其转换为弧度才能在Box2D中使用。
关于c++ - 将物体正确放置在行星表面上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23790508/