【问题标题】:Bouncing Ball. Making it slow down at peak of height弹跳球。让它在高峰时减速
【发布时间】:2013-11-16 01:03:39
【问题描述】:

我在 x3d 中创建了一个弹跳球动画。我只是好奇如何让球在其最高点减速以使其看起来更逼真。提前谢谢你。

<X3D profile="interactive">
    <Scene>
        <Background skyColor='0.5 0.5 1'/>

    <Transform DEF="Ball" translation="0 1 0" >
    <TouchSensor DEF="Touch"/>
            <Shape>
                <Appearance>
                    <Material diffuseColor="1 0 0 "/>
                </Appearance>
                <Sphere radius='1'/>
            </Shape>
        </Transform>

    <TimeTrigger DEF="Trigger"/>
        <TimeSensor DEF="Clock" loop="false" cycleInterval="5" />    
        <PositionInterpolator DEF="Position" key="0.0 0.5 1.0" keyValue="0 1 0 0 5 0 0 1 0"/>

        <ROUTE fromNode="Clock" fromField="fraction_changed" toNode="Position" toField="set_fraction"/> 
        <ROUTE fromNode="Position" fromField="value_changed" toNode="Ball" toField="set_translation"/>
    <ROUTE fromNode="Touch" fromField="isActive" toNode="Trigger" toField="set_boolean"/>
    <ROUTE fromNode="Trigger" fromField="triggerTime" toNode="Clock" toField="startTime"/>

</Scene>

【问题讨论】:

    标签: graphics 3d x3d x3dom


    【解决方案1】:

    为此使用“真实”物理。

    1. 球有参数

      • 加速度a(ax,ay,az) [m/s^2]...这是驱动球的所有力的总和除以它的质量
      • 速度v(vx,vy,vz) [m/s]...实际速度=加速度的积分v += a * dt
      • 位置p(x,y,z) [m]...实际位置 = 速度积分p += v * dt
      • 半径r [m]
      • 质量m [kg]
      • dt [s] ... 迭代步骤(更新时间)

      初始化开始a,v 值到(0,0,0)p 开始位置

    2. 应用重力、摩擦、碰撞

      • 重力例如g(gx=0,gy=-9.81,gz=0)
      • 摩擦f2 = -(|v|^2)*c2 * (v/|v|) ...在气体中
      • 摩擦f3 = -(|v|^3)*c3 * (v/|v|) ...在液体中

      如果跨越碰撞边界之前和之后的位置反映速度 * 碰撞系数

    3. 将它们放在一些计时器中/使用dt 间隔更新代码

      a =g+(f2+f3+(driving force))/m
      v+=a*dt
      p+=v*dt
      test_collisions()
      redraw()
      
    4. 用于手动改变位置

      只需将p(x,y,z)设置为新位置,也可以设置v=(0,0,0)停止球

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      相关资源
      最近更新 更多