Social Force Model——社会力模型

社会力模型以牛顿动力学为基础,由各个力的表达式来体现行人不同的动机和影响。
个体的实际行为受个体的主观意识、个体之间以及障碍物这三方面因素的影响,
均可将其等效为力在个体上的作用。


步骤如下:

            foreach(Agent agent in Agents)
            {
                if (agent.IsActivity == true)
                {
                    Vector2 self_Force = Get_Self_Force(agent);
                    Vector2 other_Force = Get_OtherAgents_Force(agent);
                    Vector2 obstacle_Force = Get_Obstacle_Force(agent);
                    Vector2 Sum = self_Force + other_Force + obstacle_Force;
                    Vector2 Dex_speed = Sum / agent.Mass * Paramaters._ε;

                    agent.Real_speed += Dex_speed * Paramaters._Scale;
                    agent.Real_speed = GetRealSpeed(agent);
                    agent.Position = new PointF(agent.Position.X + (agent.Real_speed.X * Paramaters.TimeStep),
                        agent.Position.Y + (agent.Real_speed.Y * Paramaters.TimeStep));
                    agent.Self = new RectangleF((agent.Position.X - agent.Radius), (agent.Position.Y - agent.Radius), agent.Radius * 2f, agent.Radius * 2f);
                }
            }

参考文献:

Dirk Helbing, Illés Farkas, Tamás Vicsek. Simulating dynamical features of escape panic. 2000, 407(6803):487-490.

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值