【问题标题】:Orbiting bodies using scenekit physics使用 scenekit 物理的轨道物体
【发布时间】:2014-11-08 13:12:30
【问题描述】:

在无数次尝试使用简单的机制让一个节点围绕另一个节点运行之后,我偶然发现了 Scenekit 的太多限制,这只会让它变得更加复杂。

我现在咬紧牙关让它完全基于物理。

我希望建立一个物理世界,只需要一个节点绕另一个节点运行,并且轨道半径可以调整。如果可以简化流程,那么重力在这个项目中不是必须的。

我在这方面的尝试并没有达到我所追求的结果。我不知道要施加什么力量来实现这一目标。我尝试了多种不同的力、扭矩和重力组合。

注意:我已经查看了其他问题并研究了很长时间,但所有答案都描述了一个比需要和/或需要物理学位才能理解的复杂得多的物理世界。

【问题讨论】:

  • 您想要对轨道物体进行实际物理模拟,还是只想要一个围绕另一个旋转的动画?
  • 物理模拟似乎是我唯一的选择,我尝试使用其他任何东西都会导致问题,无论是节点空间还是冲突。
  • 我会说,如果您只需要获得环绕的视觉效果,您可以将一个定义为中心,另一个围绕它遵循椭圆路径。我不明白这个问题。您需要添加更多信息,以便我们更好地帮助您。
  • 问题很明确。我还有其他问题可以解决我尝试过的不同方法(包括你所说的方法)出现的问题的解决方案。社区要求这个问题完全是关于物理模拟的。

标签: ios physics game-physics scenekit


【解决方案1】:

我会这样解决: - 创建一个中心节点

-创建轨道节点

-将轨道节点设置为中心节点的子节点

-将子节点向任意方向远离中心节点

-将轨道节点的枢轴点更改为在中心节点的中间

-给环绕节点添加恒定动画[Orbitingnode runaction:[SCNAction rotateBy x:y:z:duration]];

应该这样做

【讨论】:

  • 如前所述,我使用了许多不同的方法来实现我正在寻找的效果,包括您建议的那种。关于这种方法的问题可以找到here
  • 另外一个问题是我需要能够旋转轨道节点,改变动量的方向。我没有提到这一点,因为这个问题显然是关于物理模拟的。
【解决方案2】:

我会在给定最大和最小距离的情况下使用距离约束,然后向轨道节点提供所需方向的脉冲。您也可以使用物理铰链关节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2017-08-21
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多