用户界面操作
1. 基本操作
Vadere是一款强大的人群仿真软件,其用户界面设计旨在为用户提供直观且易用的操作体验。在本节中,我们将详细介绍如何进行基本的用户界面操作,包括启动软件、创建和加载仿真场景、基本导航和工具栏的使用。
1.1 启动软件
要启动Vadere,首先需要确保您的系统已经安装了Java运行环境。Vadere支持多种操作系统,包括Windows、Linux和MacOS。启动方法如下:
Windows:双击Vadere安装目录下的
Vadere.exe文件。Linux:在终端中导航到Vadere安装目录,运行
./Vadere.sh。MacOS:双击Vadere安装目录下的
Vadere.app文件。
启动后,您将看到Vadere的主界面,其中包括菜单栏、工具栏、仿真视图和属性面板等主要组件。
1.2 创建和加载仿真场景
Vadere允许用户创建新的仿真场景或加载现有的场景文件。以下是具体步骤:
1.2.1 创建新场景
打开Vadere主界面。
点击菜单栏中的
File->New Scene。在弹出的对话框中,选择场景的基本参数,如场景名称、场景大小等。
点击
Create按钮,创建新的仿真场景。
1.2.2 加载现有场景
打开Vadere主界面。
点击菜单栏中的
File->Open Scene。在文件选择对话框中,浏览并选择您要加载的场景文件(通常是
.scenario文件)。点击
Open按钮,加载场景。
1.3 基本导航
Vadere的用户界面提供了多种导航工具,帮助用户在仿真场景中进行自由移动和缩放。以下是常用的导航操作:
1.3.1 平移视图
在仿真视图中按住鼠标中键(或Alt键+左键)。
移动鼠标,视图将随之平移。
1.3.2 缩放视图
使用鼠标滚轮进行缩放。
滚动向上以放大,滚动向下以缩小。
也可以在工具栏中选择缩放工具,然后在视图中拖动鼠标以进行精确缩放。
1.4 工具栏的使用
Vadere的工具栏包含了多种工具,用于创建和编辑仿真场景。以下是一些常用工具的介绍:
1.4.1 选择工具
功能:选择场景中的对象,如行人、障碍物等。
使用方法:点击工具栏中的选择工具按钮,然后在仿真视图中点击或拖动鼠标以选择对象。
1.4.2 绘制工具
功能:在场景中绘制各种对象,如行人、障碍物、出口等。
使用方法:
选择绘制工具按钮。
在属性面板中设置对象的属性。
在仿真视图中绘制对象。
1.4.3 删除工具
功能:删除场景中的对象。
使用方法:
选择删除工具按钮。
在仿真视图中点击或拖动鼠标以选择要删除的对象。
按下Delete键或右键选择
Delete选项以删除对象。
2. 场景编辑
Vadere的场景编辑功能非常强大,可以满足用户对仿真场景的各种需求。在本节中,我们将详细介绍如何编辑场景中的各种对象,包括行人、障碍物、出口等。
2.1 编辑行人
在Vadere中,行人的行为和属性可以通过属性面板进行编辑。以下是一些常用的操作:
2.1.1 添加行人
选择工具栏中的行人绘制工具按钮。
在属性面板中设置行人的属性,如初始位置、目标位置、行进速度等。
在仿真视图中点击以添加行人。
// 示例代码:通过API添加行人importorg.vadere.simulator.models.attributes.AttributesPedestrian;importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Pedestrian;publicclassAddPedestrianExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 创建行人属性AttributesPedestrianattributes=newAttributesPedestrian();attributes.setId(1);attributes.setDesiredSpeed(1.5);attributes.setTargetId(1);// 设置目标位置// 创建行人对象Pedestrianpedestrian=newPedestrian(attributes,topography);// 将行人添加到场景中topography.addPedestrian(pedestrian);}}2.1.2 编辑行人属性
选择工具栏中的选择工具按钮。
在仿真视图中点击要编辑的行人。
在属性面板中修改行人的属性,如速度、目标位置等。
// 示例代码:编辑行人属性importorg.vadere.simulator.models.attributes.AttributesPedestrian;importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Pedestrian;publicclassEditPedestrianExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 获取要编辑的行人Pedestrianpedestrian=topography.getPedestrian(1);// 假设行人ID为1// 修改行人属性AttributesPedestrianattributes=pedestrian.getAttributes();attributes.setDesiredSpeed(2.0);// 修改行进速度attributes.setTargetId(2);// 修改目标位置// 更新行人属性pedestrian.setAttributes(attributes);}}2.2 编辑障碍物
障碍物是仿真场景中的重要组成部分,用于模拟行人路径上的障碍。以下是一些常用的操作:
2.2.1 添加障碍物
选择工具栏中的障碍物绘制工具按钮。
在属性面板中设置障碍物的属性,如位置、大小等。
在仿真视图中绘制障碍物。
// 示例代码:通过API添加障碍物importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Obstacle;publicclassAddObstacleExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 创建障碍物Obstacleobstacle=newObstacle();obstacle.setId(1);obstacle.setPolygon(newdouble[][]{{0,0},{0,5},{5,5},{5,0}});// 设置障碍物的多边形顶点// 将障碍物添加到场景中topography.addObstacle(obstacle);}}2.2.2 编辑障碍物属性
选择工具栏中的选择工具按钮。
在仿真视图中点击要编辑的障碍物。
在属性面板中修改障碍物的属性,如位置、大小等。
// 示例代码:编辑障碍物属性importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Obstacle;publicclassEditObstacleExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 获取要编辑的障碍物Obstacleobstacle=topography.getObstacle(1);// 假设障碍物ID为1// 修改障碍物属性obstacle.setPolygon(newdouble[][]{{1,1},{1,6},{6,6},{6,1}});// 修改障碍物的多边形顶点// 更新障碍物属性topography.updateObstacle(obstacle);}}2.3 编辑出口
出口是仿真场景中行人离开的关键点。以下是一些常用的操作:
2.3.1 添加出口
选择工具栏中的出口绘制工具按钮。
在属性面板中设置出口的属性,如位置、大小等。
在仿真视图中绘制出口。
// 示例代码:通过API添加出口importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Destination;publicclassAddDestinationExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 创建出口Destinationdestination=newDestination();destination.setId(1);destination.setPolygon(newdouble[][]{{0,0},{0,5},{5,5},{5,0}});// 设置出口的多边形顶点// 将出口添加到场景中topography.addDestination(destination);}}2.3.2 编辑出口属性
选择工具栏中的选择工具按钮。
在仿真视图中点击要编辑的出口。
在属性面板中修改出口的属性,如位置、大小等。
// 示例代码:编辑出口属性importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Destination;publicclassEditDestinationExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 获取要编辑的出口Destinationdestination=topography.getDestination(1);// 假设出口ID为1// 修改出口属性destination.setPolygon(newdouble[][]{{1,1},{1,6},{6,6},{6,1}});// 修改出口的多边形顶点// 更新出口属性topography.updateDestination(destination);}}3. 场景配置
Vadere提供了丰富的场景配置选项,允许用户根据需要对仿真场景进行详细的设置。在本节中,我们将详细介绍如何配置场景的全局参数和特定对象的参数。
3.1 配置全局参数
全局参数影响整个仿真场景的行为。以下是一些常用的全局参数配置方法:
3.1.1 设置仿真时间步长
选择菜单栏中的
Edit->Global Parameters。在弹出的对话框中,设置仿真时间步长。
// 示例代码:设置仿真时间步长importorg.vadere.simulator.models.bewegungsgesetz.SimulationParameters;publicclassSetTimeStepExample{publicstaticvoidmain(String[]args){// 获取当前仿真参数SimulationParametersparams=...;// 假设已经获取到当前仿真参数// 设置时间步长params.setTimeStep(0.1);// 设置时间步长为0.1秒// 更新仿真参数// 假设有一个方法可以更新仿真参数updateSimulationParameters(params);}publicstaticvoidupdateSimulationParameters(SimulationParametersparams){// 更新仿真参数的具体实现}}3.1.2 设置仿真终止条件
选择菜单栏中的
Edit->Global Parameters。在弹出的对话框中,设置仿真终止条件,如最大仿真时间、行人全部离开等。
// 示例代码:设置仿真终止条件importorg.vadere.simulator.models.bewegungsgesetz.SimulationParameters;publicclassSetTerminationConditionExample{publicstaticvoidmain(String[]args){// 获取当前仿真参数SimulationParametersparams=...;// 假设已经获取到当前仿真参数// 设置仿真终止条件params.setMaxSimulationTime(1000);// 设置最大仿真时间为1000秒params.setTerminationCondition(SimulationParameters.TerminationCondition.ALL_PEDESTRIANS_LEFT);// 设置终止条件为行人全部离开// 更新仿真参数// 假设有一个方法可以更新仿真参数updateSimulationParameters(params);}publicstaticvoidupdateSimulationParameters(SimulationParametersparams){// 更新仿真参数的具体实现}}3.2 配置特定对象的参数
特定对象的参数影响该对象的行为。以下是一些常用的特定对象参数配置方法:
3.2.1 配置行人参数
选择工具栏中的选择工具按钮。
在仿真视图中点击要配置的行人。
在属性面板中设置行人的特定参数,如初始速度、目标位置等。
// 示例代码:配置行人参数importorg.vadere.simulator.models.attributes.AttributesPedestrian;importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Pedestrian;publicclassConfigurePedestrianExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 获取要配置的行人Pedestrianpedestrian=topography.getPedestrian(1);// 假设行人ID为1// 配置行人参数AttributesPedestrianattributes=pedestrian.getAttributes();attributes.setInitialSpeed(1.2);// 设置初始速度attributes.setTargetId(2);// 设置目标位置// 更新行人参数pedestrian.setAttributes(attributes);}}3.2.2 配置障碍物参数
选择工具栏中的选择工具按钮。
在仿真视图中点击要配置的障碍物。
在属性面板中设置障碍物的特定参数,如高度、颜色等。
// 示例代码:配置障碍物参数importorg.vadere.simulator.topology.Topography;importorg.vadere.state.scenario.Obstacle;publicclassConfigureObstacleExample{publicstaticvoidmain(String[]args){// 获取当前场景Topographytopography=...;// 假设已经获取到当前场景// 获取要配置的障碍物Obstacleobstacle=topography.getObstacle(1);// 假设障碍物ID为1// 配置障碍物参数obstacle.setHeight(2.0);// 设置障碍物高度obstacle.setColor(newjava.awt.Color(255,0,0));// 设置障碍物颜色为红色// 更新障碍物参数topography.updateObstacle(obstacle);}}4. 仿真运行
在Vadere中,用户可以通过简单的操作来运行仿真,并观察仿真结果。在本节中,我们将详细介绍如何启动仿真、暂停仿真、继续仿真和停止仿真。
4.1 启动仿真
在Vadere主界面中,点击工具栏中的
Start Simulation按钮。仿真将开始运行,行人将按照设定的行为模式移动。
// 示例代码:通过API启动仿真importorg.vadere.simulator.control.SimulationController;publicclassStartSimulationExample{publicstaticvoidmain(String[]args){// 获取仿真控制器SimulationControllercontroller=...;// 假设已经获取到仿真控制器// 启动仿真controller.startSimulation();}}4.2 暂停仿真
在Vadere主界面中,点击工具栏中的
Pause Simulation按钮。仿真将暂停运行,用户可以在此时进行场景调整或查看仿真状态。
// 示例代码:通过API暂停仿真importorg.vadere.simulator.control.SimulationController;publicclassPauseSimulationExample{publicstaticvoidmain(String[]args){// 获取仿真控制器SimulationControllercontroller=...;// 假设已经获取到仿真控制器// 暂停仿真controller.pauseSimulation();}}4.3 继续仿真
在Vadere主界面中,点击工具栏中的
Resume Simulation按钮。仿真将从暂停状态继续运行。
// 示例代码:通过API继续仿真importorg.vadere.simulator.control.SimulationController;publicclassResumeSimulationExample{publicstaticvoidmain(String[]args){// 获取仿真控制器SimulationControllercontroller=...;// 假设已经获取到仿真控制器// 继续仿真controller.resumeSimulation();}}4.4 停止仿真
在Vadere主界面中,点击工具栏中的
Stop Simulation按钮。仿真将停止运行,所有状态将被重置。
// 示例代码:通过API停止仿真importorg.vadere.simulator.control.SimulationController;publicclassStopSimulationExample{publicstaticvoidmain(String[]args){// 获取仿真控制器SimulationControllercontroller=...;// 假设已经获取到仿真控制器// 停止仿真controller.stopSimulation();}}