我正在为2d游戏学习简单的物理学,我想帮助我正在尝试的模拟。
我有一个落在地上固定球上的杆,下面是xaml:
<Canvas Background="CornflowerBlue">
<Rectangle Name="bar" Width="200" Height="20" Fill="Cornsilk" Canvas.Left="250" Canvas.Top="50" />
<Ellipse Name="ball" Height="50" Width="50" Fill="PaleGreen" Canvas.Left="380" Canvas.Top="250" />
</Canvas>
我已完成所有计算以模拟由于重力而下降的杆,但我真正需要帮助的是,一旦杆击中球,它将在地面中有一侧而在球上有另一侧,可以用xaml表示:
<Canvas Background="CornflowerBlue">
<Rectangle Name="bar" Width="200" Height="20" Fill="Cornsilk" Canvas.Left="250" Canvas.Top="246.675" RenderTransformOrigin="0.5,0.5" >
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-18.897"/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<Ellipse Name="ball" Height="50" Width="50" Fill="PaleGreen" Canvas.Left="380" Canvas.Top="250" />
</Canvas>
而且我不知道如何让杆的左侧击中地面,而左侧将以物理术语覆盖球。
我知道像Farseen这样有很棒的物理引擎,但我只是想了解它在这种情况下是如何工作的。
我知道如何根据时间得到酒吧的Y,所以我一直检查它直到它与球相撞,但之后是什么?
谢谢!
答案 0 :(得分:1)
刚体物理模拟不是一项简单的任务除非您对该主题非常感兴趣,否则我建议您使用物理库。但如果你有兴趣这样做,我建议你看一下基于冲动的动态Physically Based Modeling SIGGRAPH课程笔记,Brian Mirtich's thesis,以及关于多体动力学的Kenny Erleben's thesis。
这些提供了如何实施刚体动力学的非常深入的描述。