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

📄 sphereportrayal3d.java

📁 MASON代表多主体邻里或网络仿真(Multi-Agent Simulator of Neighborhoods or Networks)。它是乔治梅森大学用Java开发的离散事件多主体仿真核心库
💻 JAVA
字号:
package sim.portrayal3d.simple;import sim.portrayal3d.*;import javax.media.j3d.*;import sim.portrayal.*;import com.sun.j3d.utils.geometry.*;/** * Portrays objects as a sphere of the specified color or appearance (flat opaque white by default) * which fills the region from (-0.5*scale,-0.5*scale,-0.5*scale) to (0.5*scale,0.5*scale,0.5*scale). * Objects portrayed by this portrayal are selectable. */public class SpherePortrayal3D extends SimplePortrayal3D    {    public float scale = 1f;    public Appearance appearance;    static final int DEFAULT_DIVISIONS = 15;  // the default number of divisions in Java3D spheres according to the docs    public int divisions;      public boolean generateNormals;    public boolean generateTextureCoordinates;            /** Constructs a SpherePortrayal3D with a default (flat opaque white) appearance and a scale of 1.0. */    public SpherePortrayal3D()        {        this(1f);        }            /** Constructs a SpherePortrayal3D with a default (flat opaque white) appearance and the given scale. */    public SpherePortrayal3D(float scale)        {        this(java.awt.Color.white,scale);        }            /** Constructs a SpherePortrayal3D with a flat opaque appearance of the given color and a scale of 1.0. */    public SpherePortrayal3D(java.awt.Color color)        {        this(color,1f);        }            /** Constructs a SpherePortrayal3D with a flat opaque appearance of the given color and the given scale. */    public SpherePortrayal3D(java.awt.Color color, float scale)        {        this(color,scale, DEFAULT_DIVISIONS);        }    /** Constructs a SpherePortrayal3D with a flat opaque appearance of the given color, scale, and divisions. */    public SpherePortrayal3D(java.awt.Color color, float scale, int divisions)        {        this(appearanceForColor(color),false,false,scale,divisions);        }    /** Constructs a SpherePortrayal3D with the given (opaque) image and a scale of 1.0. */    public SpherePortrayal3D(java.awt.Image image)        {        this(image,1f);        }    /** Constructs a SpherePortrayal3D with the given (opaque) image and scale. */    public SpherePortrayal3D(java.awt.Image image, float scale)        {        this(image,scale,DEFAULT_DIVISIONS);        }    /** Constructs a SpherePortrayal3D with the given (opaque) image, scale, and divisions. */    public SpherePortrayal3D(java.awt.Image image, float scale, int divisions)        {        this(appearanceForImage(image,true),false,true,scale,divisions);        }    /** Constructs a SpherePortrayal3D with the given appearance, divisions, and scale, plus whether or not to generate normals or texture coordinates.  Without texture coordiantes, a texture will not be displayed */    public SpherePortrayal3D(Appearance appearance, boolean generateNormals, boolean generateTextureCoordinates, float scale, int divisions)        {        this.generateNormals = generateNormals;        this.generateTextureCoordinates = generateTextureCoordinates;        this.appearance = appearance;  this.scale = scale; this.divisions = divisions;        }    public TransformGroup getModel(Object obj, TransformGroup j3dModel)        {        if (j3dModel==null)            {            j3dModel = new TransformGroup();                        // make a sphere            Sphere sphere = new Sphere(scale/2,Primitive.GEOMETRY_NOT_SHARED |                                        (generateNormals ? Primitive.GENERATE_NORMALS : 0) |                                        (generateTextureCoordinates ? Primitive.GENERATE_TEXTURE_COORDS : 0),                                        divisions, appearance);                        // make all of its shapes pickable -- in this case, spheres            // only have one "side"            setPickableFlags(sphere.getShape(Sphere.BODY));                        // build a LocationWrapper for the object            LocationWrapper pickI = new LocationWrapper(obj, null, parentPortrayal);            // Store the LocationWrapper in the user data of each shape            sphere.getShape(Sphere.BODY).setUserData(pickI);            j3dModel.addChild(sphere);            }        return j3dModel;        }    }

⌨️ 快捷键说明

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