【问题标题】:SKPhysicsJointSpring frequency & damping in SwiftSwift 中的 SK Physics 关节弹簧频率和阻尼
【发布时间】:2014-11-14 09:31:40
【问题描述】:

SKPhysicsJointSpringdampingfrequency 属性有什么区别?

我的代码是

var spring = SKPhysicsJointSpring.jointWithBodyA(
            body1.physicsBody,
            bodyB: body2.physicsBody,
            anchorA: body1.position,
            anchorB: body2.position)
spring.frequency = 1.8
spring.damping = 0.5
self.physicsWorld.addJoint(spring1)

body1.physicsBody?.dynamic = false
body2.physicsBody?.dynamic = true

frequencydamping 应该落在哪个值范围内,以使 spring自然地起作用

【问题讨论】:

    标签: ios swift sprite-kit skphysicsjoint


    【解决方案1】:

    答案取决于你认为什么是“自然的”。

    阻尼意味着弹簧会随着每次振荡消耗能量并最终静止。

    零阻尼意味着附着在弹簧上的质量将永远振荡。

    这样的系统通常有三个与之相关的常数:

    1. 质量 m (lbm)
    2. 弹簧刚度 k (lbf/in)
    3. 阻尼系数c

    众所周知,频率 f^2 = k/m。

    当该系统谈论弹簧“频率”时,我觉得这毫无意义。

    【讨论】:

    • 感谢您的澄清,那么对于massfrequencydamping,我可以使用哪些示例值?以及如果其中一项发生变化,弹性会受到怎样的影响?
    • “弹力”由质量 m 和弹簧刚度 k 控制。暂时使阻尼系数 c = 0。更高的刚度,更低的质量意味着更高的频率;较低的刚度,较高的质量意味着较低的频率。
    • 磅,磅,英寸? kg,N或m呢? (开个玩笑:)
    • 你是指世界其他地方使用的有理单位?你找到我了,@MartinR。
    • @Carpsen90:我给了你比代码更有价值的东西。你必须真正了解一点物理知识才能正确解决这个问题。
    【解决方案2】:

    将频率视为弹簧“刚度”的量度是很有用的,它对压力或侧向力的响应方式。更高的频率意味着更硬的弹簧。你会经常看到像4.09.0 这样的值。 0.0001的频率非常非常松!

    但是,请注意:此逻辑在默认频率 0.0 下会失效。在frequency == 0.0,弹簧完全是刚性的且无压缩性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 2018-09-08
      相关资源
      最近更新 更多