帮助WPF中的物理模拟

时间:2011-04-12 18:20:06

标签: c# wpf physics game-physics

我正在为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>

Before bar starts falling

我已完成所有计算以模拟由于重力而下降的杆,但我真正需要帮助的是,一旦杆击中球,它将在地面中有一侧而在球上有另一侧,可以用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>

Bar is on the ground

而且我不知道如何让杆的左侧击中地面,而左侧将以物理术语覆盖球。

我知道像Farseen这样有很棒的物理引擎,但我只是想了解它在这种情况下是如何工作的。

我知道如何根据时间得到酒吧的Y,所以我一直检查它直到它与球相撞,但之后是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

刚体物理模拟不是一项简单的任务除非您对该主题非常感兴趣,否则我建议您使用物理库。但如果你有兴趣这样做,我建议你看一下基于冲动的动态Physically Based Modeling SIGGRAPH课程笔记,Brian Mirtich's thesis,以及关于多体动力学的Kenny Erleben's thesis

这些提供了如何实施刚体动力学的非常深入的描述。