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

📄 curtain.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
package com.bbn.openmap.tools.j3d.geometry;import java.awt.Color;import java.util.HashSet;import java.util.Iterator;import javax.media.j3d.*;import com.bbn.openmap.MapHandlerChild;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.tools.j3d.MapContent;import com.bbn.openmap.tools.j3d.OM3DGraphicHandler;import com.bbn.openmap.tools.j3d.OMGraphicUtil;/** * The curtain class is just a set of planes around the projection * boundaries in the map. OpenMap depends on the MapBean clipping for * not drawing things on the map. Unfortunately, this means that some * leftovers can appear in the 3D scene. Use this class to create a 3D * barrier that will hide those leftovers. *  * @author dietrick */public class Curtain extends MapHandlerChild implements OM3DGraphicHandler {    /**     * The color of the curtains.     */    protected Color color = Color.lightGray;    Iterator curtains = null;    /**     * An amount to add (or subtract) from the projection boundaries.     */    protected double extra = 0;    /**     * The height of the box. Default is 500.     */    protected double curtainHeight = 500;    public Curtain() {}    public void addGraphicsToScene(MapContent mapContent) {        if (curtains == null) {            curtains = init(mapContent.getProjection());        }        while (curtains.hasNext()) {            mapContent.add((Shape3D) curtains.next());        }        curtains = null;    }    protected Iterator init(Projection proj) {        HashSet set = new HashSet();        double width = (double) proj.getWidth() + extra;        double depth = (double) proj.getHeight() + extra;        double height = curtainHeight + extra;        // The lower left corner value, or the value of zero.        double origin = 0 - extra;        double[] data = new double[60];        data[0] = origin;        //width        data[1] = origin;        //depth        data[2] = origin;        //height        data[3] = width;        data[4] = origin;        data[5] = origin;        data[6] = width;        data[7] = depth;        data[8] = origin;        data[9] = origin;        data[10] = depth;        data[11] = origin;        data[12] = width;        data[13] = origin;        data[14] = origin;        data[15] = width;        data[16] = depth;        data[17] = origin;        data[18] = width;        data[19] = depth;        data[20] = height;        data[21] = width;        data[22] = origin;        data[23] = height;        data[24] = width;        data[25] = depth;        data[26] = origin;        data[27] = width;        data[28] = depth;        data[29] = height;        data[30] = origin;        data[31] = depth;        data[32] = height;        data[33] = origin;        data[34] = depth;        data[35] = origin;        data[36] = origin;        data[37] = origin;        data[38] = origin;        data[39] = origin;        data[40] = origin;        data[41] = height;        data[42] = origin;        data[43] = depth;        data[44] = height;        data[45] = origin;        data[46] = depth;        data[47] = origin;        data[48] = origin;        data[49] = origin;        data[50] = height;        data[51] = width;        data[52] = origin;        data[53] = height;        data[54] = width;        data[55] = depth;        data[56] = height;        data[57] = origin;        data[58] = depth;        data[59] = height;        int[] stripCount = new int[5];        stripCount[0] = 4;        stripCount[1] = 4;        stripCount[2] = 4;        stripCount[3] = 4;        stripCount[4] = 4;        int dataIndex = 0;        int[] sc = new int[1];        for (int i = 0; i < stripCount.length; i++) {            double[] temp = new double[12];            sc[0] = stripCount[i];            System.arraycopy(data, dataIndex, temp, 0, 12);            set.add(OMGraphicUtil.createFilled(temp, sc, color));            dataIndex += 12;        }        return set.iterator();    }    public void setColor(Color curtainColor) {        color = curtainColor;    }    public Color getColor() {        return color;    }    public void setCurtainHeight(double height) {        curtainHeight = height;    }    public double getCurtainHeight() {        return curtainHeight;    }}

⌨️ 快捷键说明

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