import com.anylogic.engine.Agent; import com.anylogic.engine.AgentList; import com.anylogic.engine.AgentType; import com.anylogic.engine.Point; import com.anylogic.engine.ShapeFillColor; import com.anylogic.engine.SolidLineStroke; import com.anylogic.engine.SpaceMarkupLine; import com.anylogic.engine.SpaceMarkupPolyline; import com.anylogic.engine.UtilitiesColor; import com.anylogic.engine.analysis.AggregateAnimation; import com.anylogic.engine.analysis.ObservationsView; import com.anylogic.engine.analysis.PedFlowStatistics; import com.anylogic.engine.analysis.SpaceMarkupDensityMap; import com.anylogic.engine.elements.IElementDescriptor; import com.anylogic.engine.elements.IElementScript; import com.anylogic.engine.elements.IElementShape; import com.anylogic.engine.elements.IElementText; import com.anylogic.engine.elements.Sprite; import com.anylogic.engine.elements.Trailer; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.LinkedHashMap; import java.util.Collection; import java.util.Collections;
public class Main extends Agent { // Parameters public int numberOfAgents = 30; public double distance = 2.0; public int interval = 1; public double densityThreshold = 0.5;
// Constants public final double speed = 1.0;
// Variables
private AgentList
// Density map SpaceMarkupDensityMap densityMap;
// Statistics PedFlowStatistics pedFlowStats; ObservationsView obsView;
// Animation public AggregateAnimation animation;
// Initialization public void setup() { // Create pedestrians pedestrians = new AgentList<>( Pedestrian.class, this ); for( int i = 0; i < numberOfAgents; ++i ) { // Define start position double x = 20 + i * ( distance + 0.4 ) * Math.sin( i * interval ); double y = 35 + i * ( distance + 0.4 ) * Math.cos( i * interval );
// Instantiate pedestrian
Pedestrian p = new