⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flockerswithui.java

📁 MASON代表多主体邻里或网络仿真(Multi-Agent Simulator of Neighborhoods or Networks)。它是乔治梅森大学用Java开发的离散事件多主体仿真核心库
💻 JAVA
字号:
package sim.app.flockers;import sim.engine.*;import sim.display.*;import sim.portrayal.continuous.*;import javax.swing.*;import java.awt.*;import sim.portrayal.simple.*;import sim.portrayal.SimplePortrayal2D;public class FlockersWithUI extends GUIState    {    public Display2D display;    public JFrame displayFrame;    public static void main(String[] args)        {        FlockersWithUI mav = new FlockersWithUI();  // randomizes by currentTimeMillis        Console c = new Console(mav);        c.setVisible(true);        }    public Object getSimulationInspectedObject() { return state; }  // non-volatile    ContinuousPortrayal2D flockersPortrayal = new ContinuousPortrayal2D();        public FlockersWithUI()        {        super(new Flockers(System.currentTimeMillis()));        }        public FlockersWithUI(SimState state)         {        super(state);        }    public String getName() { return "Flockers"; }    public void start()        {        super.start();        setupPortrayals();        }    public void load(SimState state)        {        super.load(state);        setupPortrayals();        }            public void setupPortrayals()        {        Flockers flock = (Flockers)state;        // obstacle portrayal needs no setup        flockersPortrayal.setField(flock.flockers);                // make the flockers random colors and four times their normal size (prettier)        for(int x=0;x<flock.flockers.allObjects.numObjs;x++)            flockersPortrayal.setPortrayalForObject(flock.flockers.allObjects.objs[x],                                                    new OrientedPortrayal2D(new SimplePortrayal2D(),0,4.0,                                                                            new Color(128 + state.random.nextInt(128),                                                                                      128 + state.random.nextInt(128),                                                                                      128 + state.random.nextInt(128)),                                                                            OrientedPortrayal2D.SHAPE_COMPASS));                // update the size of the display appropriately.        double w = flock.flockers.getWidth();        double h = flock.flockers.getHeight();        if (w == h)            { display.insideDisplay.width = display.insideDisplay.height = 750; }        else if (w > h)            { display.insideDisplay.width = 750; display.insideDisplay.height = 750 * (h/w); }        else if (w < h)            { display.insideDisplay.height = 750; display.insideDisplay.width = 750 * (w/h); }                    // reschedule the displayer        display.reset();                        // redraw the display        display.repaint();        }    public void init(Controller c)        {        super.init(c);        // make the displayer        display = new Display2D(750,750,this,1);        display.setBackdrop(Color.black);        displayFrame = display.createFrame();        displayFrame.setTitle("Flockers");        c.registerFrame(displayFrame);   // register the frame so it appears in the "Display" list        displayFrame.setVisible(true);        display.attach( flockersPortrayal, "Behold the Flock!" );        }            public void quit()        {        super.quit();                if (displayFrame!=null) displayFrame.dispose();        displayFrame = null;        display = null;        }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -