C# WPF中的物理模拟帮助
我正在学习2d游戏的简单物理,我想帮助我做一个模拟 我有一根杆,它会落在地上的一个固定球上,xaml如下:C# WPF中的物理模拟帮助,c#,wpf,physics,game-physics,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" Widt
<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>
而且我不知道如何让左边的横杆触地,而左边的横杆将在球上方
我知道有很棒的物理引擎,比如Farsee,但我只是想了解它在这种情况下是如何工作的
我知道如何根据时间来计算杆的Y,所以我一直在检查它,直到它与球发生碰撞,但之后呢
谢谢 刚体物理模拟不是一项简单的任务,除非您对我建议使用物理库的主题非常感兴趣。但如果你对此感兴趣,我建议你看看SIGGRAPH课程笔记,关于基于冲动的动力学,也许还有关于多体动力学
这些内容非常深入地描述了刚体动力学是如何实现的。为了实现类似的功能,您必须编写自己的2D物理引擎。矩形将有一个2D长方体碰撞器连接到它,而圆将有一个圆/球体碰撞器。您需要检查碰撞的每个“勾号”,并根据需要施加力。如果你不需要自己写这篇文章,我强烈建议你找一个可以使用的物理引擎。@SpikeX你应该回答+1我没有回答这个问题,因为它没有回答他的问题,它更多的是一个建议“不要重新发明轮子”(就像人们经常做的那样)。谢谢,但这不是重新发明轮子,了解车轮的工作原理:)