WPF达成物理功效

直接以来都对物理意义有神秘感,完全不知底怎么落实的.直到看到了周银辉在老早前写的1篇博客:http://www.cnblogs.com/zhouyinhui/archive/2007/06/23/793724.html 终于领会是怎么落到实处的了.

CompositionTarget类的Rendering事件.在每壹帧成功渲染时触发.那样就可以在非常的短的时间内对指标开展更密切的操作,以完结预期效果.

而是博客里并从未介绍得出结果公式的进程,导致自个儿实在三只雾水了,所以决定重新写一下,分享给感兴趣的人.

先上效果图:

图片 1

大概是那般个场景,贰个橡皮筋拉着三个小球在一个充满介质的半空中里活动,橡皮筋越长,拉力就越大,介质能够是空气,水,油等别的液体或气体物质,取决于他们的粘性周密.

公式

Newton的公式

世家都很熟知了:(可能啊,反正笔者是不熟习,那都以自己百度查的)

a=(v2-v1)/t

F=F拉-F阻=ma

s=vt+1/2at^2

当中a是加速度,v是速度,t是时间,F是受到的力,s是运动的离开

圆球品质公式

m=4/3 * π * r^3 * ρ

里面m是品质,r是球半径,ρ是密度

粘滞阻力

没学过那种高级的大意,完全不明白,也是在百度查的

在答辩力学中所说的”与实体速度1回方成正比的阻力”指的就是粘滞阻力
在空气中移动速度不尤其快的实体 受到的障碍主要是粘滞阻力

Stokes公式 球形物体 F=陆πηvr=三πηvd η为流体的粘性周密 r为球形物体的半径
d为球形物体的直径

 

公式都有了,供给做的就是寻找在上次帧渲染和此次帧渲染那段时间在李尚和阻力的效果下的移位距离.

功效力和速度都看成是X轴和Y轴三个样子的.

那边取的是把wpf里三个单位的距离,就当作是一Newton的力.粘性周详和球的密度作为参数设置.有了这么些,就足以依附公式推导出活动距离.(进程略…就是套公式…源码里有注释…最终会附着源码)

 

接下来,好不轻便推出来了,运维程序意识小球不动.才开采本人犯了个大错误,正是力和品质差的太悬殊,打个举个例子就像一人拿橡皮筋去拉新加坡塔,肯定是拉不动.

因此作者加了个周详小球直径的1回方在里头,打个如果差不多能够清楚成,拉的事物多大,笔者的力气就多大,跟被拉的事物大小非亲非故.笔者去拉北京塔的时候,作者曾经和香港塔同样高了.

 

依赖源码:拉小球物理效果.zip