2

私は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を取得する方法を知っているので、ボールと衝突するまでチェックを続けますが、その後はどうなりますか?

ありがとう!

4

1 に答える 1

2

剛体の物理シミュレーションは簡単な作業ではありません。このトピックに非常に興味がない限り、物理ライブラリを使用することをお勧めします。しかし、これを行うことに興味がある場合は、物理ベースのモデリングSIGGRAPHコースノート、インパルスベースのダイナミクスに関するBrian Mirtichの論文、およびマルチボディダイナミクスに関するKennyErlebenの論文を参照することをお勧めします。

これらは、剛体のダイナミクスを実装する方法の非常に詳細な説明を提供します。

于 2011-04-12T18:49:52.757 に答える