Помогите с симуляцией физики в WPF - PullRequest
2 голосов
/ 12 апреля 2011

Я изучаю простую физику для двумерных игр, и мне нужна помощь в симуляции, которую я пытаюсь сделать.

У меня есть планка, которая упадет на неподвижный шар в земле, 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 Ответ

1 голос
/ 12 апреля 2011

Физическое моделирование твердого тела не простая задача. Если вы не очень заинтересованы в теме, я бы порекомендовал использовать физическую библиотеку. Но если вы заинтересованы в этом, я бы порекомендовал посмотреть примечания к курсу Physical Based Modeling SIGGRAPH, тезис Брайана Миртича о импульсной динамике и, возможно, также тезис Kenny Erleben по многотельной динамике.

Они дают очень глубокое описание того, как можно реализовать динамику твердого тела.

...