def run_view(): '''此方法为单步运行测试方法,带图像显示''' time_logo = 0 # allPeople = InitPeolple.creatPeople() # 产生随机行人 # allPeople=InitPeolple.creatPeople_force_normal() # allPeople=InitPeolple.creatPeople_force_fix() allPeople = InitPeolple.creatPeople_force_random() # allPeople=InitPeolple.creatAppointPeo()#产生指定行人 # allPeople=InitPeolple.creatAreaPeople() # print(len(allPeople)) # allWall = InitPeolple.creatWall() # 创建墙壁 # allExit = InitPeolple.creatExit() # 创建出口 DrawFirst.drawPeople(allPeople) while Data.flag: #循环开始 if Data.FX_S_R < 21: count_R_O_V(time_logo) for p in allPeople: #遍历行人 Income.outDirection(p, allPeople) #计算收益 direction = max(p.allInComeBySort.items(), key=lambda x: x[1])[0] #获取方向 Rule.chickOverAround(p, allPeople) #检测是否到达出口 Rule.PeopleMove(p, direction) #行人移动 DrawFirst.drawPeople(allPeople) time_logo = time_logo + 1 print( time_logo, "\033[4;32;40mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\033[0m" )
def run_insert(case_s, density, radius, radius_ob, radius_v, force, force_type, peo_view, steps): '''此方法为运行方法,带参数接受和返回,不带图像显示''' Data.flag = True time_logo = 0 if case_s == 0: #危险源位置设置 Data.FX_N = 19 elif case_s == 1: Data.FX_N = 15 elif case_s == 2: Data.FX_N = 10 elif case_s == 3: Data.FX_N = 5 elif case_s == 4: Data.FX_N = 2 Data.PEOPLE_DENSYTY = density Data.PEOPLE_NUMBER = Data.count_PEOPLE_NUMBER(density) Data.FX_SIGMA_2 = radius # 危险源大小 Data.FX_R = Data.count_FX_R(radius) # 影响范围半径 Data.FX_P = Data.count_FX_P(radius) # 系数 p越大 高斯函数的圆形越大 Data.FX_S_SIGMA_2 = radius_ob Data.FX_S_R = Data.count_FX_S_R(radius_ob) Data.FX_S_P = Data.count_FX_S_P(radius_ob) Data.FX_S_V = radius_v Data.PEOPLE_FORCE = force if force_type == 0: # fix allPeople = InitPeolple.creatPeople_force_fix() else: #random allPeople = InitPeolple.creatPeople_force_random() Data.PEOPLE_FAN_R = peo_view while Data.flag: #循环开始 if Data.FX_S_R < 21: count_R_O_V(time_logo) for p in allPeople: #遍历行人 Income.outDirection(p, allPeople) #计算收益 direction = max(p.allInComeBySort.items(), key=lambda x: x[1])[0] #获取方向 Rule.chickOverAround(p, allPeople) #检测是否到达出口 Rule.PeopleMove(p, direction) #行人移动 if len(allPeople) == 0: Data.flag = False time_logo = time_logo + 1 # print(time_logo) # print("\033[4;32;40mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\033[0m") return time_logo