亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? omspline.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
字號:
//**********************************************************************////<copyright>////BBN Technologies//10 Moulton Street//Cambridge, MA 02138//(617) 873-8000////Copyright (C) BBNT Solutions LLC. All rights reserved.////</copyright>//**********************************************************************////$Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/omGraphics/OMSpline.java,v $//$RCSfile: OMSpline.java,v $//$Revision: 1.6.2.3 $//$Date: 2005/09/06 20:01:21 $//$Author: dietrick $////**********************************************************************package com.bbn.openmap.omGraphics;import java.awt.Point;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;/** * A splined OMPoly. With RENDERTYPE_LATLON mode, spline is computed * on geographic locations, and then projected. Very few changes from * OMPoly source code, just needed to calculate the spline before * projecting in generate(). Look for HACK in source code ... *  * @author Eric LEPICIER * @version 15 juil. 2002 */public class OMSpline extends OMPoly {    private transient NatCubicSpline natCubic = new NatCubicSpline();    private transient NatCubicClosedSpline natCubicClosed = new NatCubicClosedSpline();    /**     * Default constructor.     */    public OMSpline() {        super();    }    /**     * Create an OMSpline from a list of float lat/lon pairs.     * <p>     * NOTES:     * <ul>     * <li>llPoints array is converted into radians IN PLACE for more     * efficient handling internally if it's not already in radians!     * For even better performance, you should send us an array     * already in radians format!     * <li>If you want the curve to be connected (as a potato), you     * need to ensure that the first and last coordinate pairs are the     * same.     * </ul>     *      * @param llPoints array of lat/lon points, arranged lat, lon,     *        lat, lon, etc.     * @param units radians or decimal degrees. Use OMGraphic.RADIANS     *        or OMGraphic.DECIMAL_DEGREES     * @param lType line type, from a list defined in OMGraphic.     */    public OMSpline(float[] llPoints, int units, int lType) {        super(llPoints, units, lType);    }    /**     * Create an OMSpline from a list of float lat/lon pairs.     * <p>     * NOTES:     * <ul>     * <li>llPoints array is converted into radians IN PLACE for more     * efficient handling internally if it's not already in radians!     * For even better performance, you should send us an array     * already in radians format!     * <li>If you want the curve to be connected (as a potato), you     * need to ensure that the first and last coordinate pairs are the     * same.     * </ul>     *      * @param llPoints array of lat/lon points, arranged lat, lon,     *        lat, lon, etc.     * @param units radians or decimal degrees. Use OMGraphic.RADIANS     *        or OMGraphic.DECIMAL_DEGREES     * @param lType line type, from a list defined in OMGraphic.     * @param nsegs number of segment points (only for     *        LINETYPE_GREATCIRCLE or LINETYPE_RHUMB line types, and     *        if &lt; 1, this value is generated internally)     */    public OMSpline(float[] llPoints, int units, int lType, int nsegs) {        super(llPoints, units, lType, nsegs);    }    /**     * Create an OMSpline from a list of xy pairs. If you want the     * curve to be connected, you need to ensure that the first and     * last coordinate pairs are the same.     *      * @param xypoints array of x/y points, arranged x, y, x, y, etc.     */    public OMSpline(int[] xypoints) {        super(xypoints);    }    /**     * Create an x/y OMSpline. If you want the curve to be connected,     * you need to ensure that the first and last coordinate pairs are     * the same.     *      * @param xPoints int[] of x coordinates     * @param yPoints int[] of y coordinates     */    public OMSpline(int[] xPoints, int[] yPoints) {        super(xPoints, yPoints);    }    /**     * Create an x/y OMSpline at an offset from lat/lon. If you want     * the curve to be connected, you need to ensure that the first     * and last coordinate pairs are the same.     *      * @param latPoint latitude in decimal degrees     * @param lonPoint longitude in decimal degrees     * @param xypoints int[] of x,y pairs     * @param cMode offset coordinate mode     */    public OMSpline(float latPoint, float lonPoint, int[] xypoints, int cMode) {        super(latPoint, lonPoint, xypoints, cMode);    }    /**     * Create an x/y OMSpline at an offset from lat/lon. If you want     * the curve to be connected, you need to ensure that the first     * and last coordinate pairs are the same.     *      * @param latPoint latitude in decimal degrees     * @param lonPoint longitude in decimal degrees     * @param xPoints int[] of x coordinates     * @param yPoints int[] of y coordinates     * @param cMode offset coordinate mode     */    public OMSpline(float latPoint, float lonPoint, int[] xPoints,            int[] yPoints, int cMode) {        super(latPoint, lonPoint, xPoints, yPoints, cMode);    }    /**     * Prepare the spline for rendering.     *      * @see com.bbn.openmap.omGraphics.OMGeometry#generate(Projection)     * @param proj Projection     * @return true if generate was successful     */    public boolean generate(Projection proj) {        int i, j, npts;        setShape(null);        if (proj == null) {            Debug.message("omspline", "OMSpline: null projection in generate!");            return false;        }        NatCubicSpline spline = isGeometryClosed() ? natCubicClosed : natCubic;        // HACK : should use something else than nsegs        spline.setSteps(nsegs);        int[][] splinePoints;        switch (renderType) {        case RENDERTYPE_XY:            if (xs == null) {                Debug.message("omspline",                        "OMSpline x/y rendertype null coordinates");                setNeedToRegenerate(true);                return false;            }            splinePoints = spline.calc(xs, ys);            xpoints = new int[1][0];            xpoints[0] = splinePoints[0];            ypoints = new int[1][0];            ypoints[0] = splinePoints[1];            break;        case RENDERTYPE_OFFSET:            if (xs == null) {                Debug.message("omspline",                        "OMSpline offset rendertype null coordinates");                setNeedToRegenerate(true);                return false;            }            npts = xs.length;            int[] _x = new int[npts];            int[] _y = new int[npts];            // forward project the radian point            Point origin = proj.forward(lat, lon, new Point(0, 0), true);// radians            if (coordMode == COORDMODE_ORIGIN) {                for (i = 0; i < npts; i++) {                    _x[i] = xs[i] + origin.x;                    _y[i] = ys[i] + origin.y;                }            } else { // CModePrevious offset deltas                _x[0] = xs[0] + origin.x;                _y[0] = ys[0] + origin.y;                for (i = 1; i < npts; i++) {                    _x[i] = xs[i] + _x[i - 1];                    _y[i] = ys[i] + _y[i - 1];                }            }            splinePoints = spline.calc(_x, _y);            xpoints = new int[1][0];            xpoints[0] = splinePoints[0];            ypoints = new int[1][0];            ypoints[0] = splinePoints[1];            break;        case RENDERTYPE_LATLON:            if (rawllpts == null) {                Debug.message("omspline",                        "OMSpline latlon rendertype null coordinates");                setNeedToRegenerate(true);                return false;            }            // spline creation ; precision 1e-8 rad = 0.002"            float[] splinellpts = spline.calc(rawllpts, 1e-8f);            // polygon/polyline project the polygon/polyline.            // Vertices should already be in radians.            ArrayList vector = proj.forwardPoly(splinellpts,                    lineType,                    nsegs,                    isPolygon);            int size = vector.size();            xpoints = new int[(int) (size / 2)][0];            ypoints = new int[xpoints.length][0];            for (i = 0, j = 0; i < size; i += 2, j++) {                xpoints[j] = (int[]) vector.get(i);                ypoints[j] = (int[]) vector.get(i + 1);            }            if (!doShapes && size > 1) {                setNeedToRegenerate(false);                initLabelingDuringGenerate();                setLabelLocation(xpoints[0], ypoints[0]);                return true;            }            break;        case RENDERTYPE_UNKNOWN:            Debug.error("OMSpline.generate: invalid RenderType");            return false;        }        setNeedToRegenerate(false);        createShape();        return true;    }    /**     * Write this object to a stream.     */    private void writeObject(ObjectOutputStream oos) throws IOException {        oos.defaultWriteObject();        // Include the writeObject() method for consistency.        // even though we only do the default serialization.        // Its just good practice to have both writeObject()        // and readObject() when performing custom serialization.    }    /**     * Read this object from a stream.     */    private void readObject(ObjectInputStream ois)            throws ClassNotFoundException, IOException {        ois.defaultReadObject();        // Instatiate the objects that are transient        // These are not creating on the deserialization        // candidate object.        natCubic = new NatCubicSpline();        natCubicClosed = new NatCubicClosedSpline();    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产视频直播| 国产日韩精品一区二区三区在线| 经典三级在线一区| 蜜乳av一区二区| 奇米精品一区二区三区在线观看| 亚洲福利视频一区| 丝袜亚洲另类丝袜在线| 偷拍亚洲欧洲综合| 午夜精品久久久久久久久久| 五月婷婷久久丁香| 久久精品国产精品亚洲精品| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品一区二区久激情瑜伽| 九九精品一区二区| 东方欧美亚洲色图在线| 99国产精品久久| 欧美亚洲愉拍一区二区| 91精品国产综合久久久久| 2017欧美狠狠色| 国产精品家庭影院| 夜色激情一区二区| 青青草国产成人99久久| 国产精品亚洲成人| 97超碰欧美中文字幕| 欧美日韩美少妇| 亚洲精品在线网站| 亚洲三级电影网站| 日韩avvvv在线播放| 国产美女娇喘av呻吟久久| av午夜一区麻豆| 欧美丝袜自拍制服另类| 欧美刺激脚交jootjob| 中文字幕不卡在线| 亚洲亚洲人成综合网络| 韩国在线一区二区| 色婷婷av一区二区三区大白胸| 欧美肥妇毛茸茸| 欧美激情自拍偷拍| 日韩高清在线一区| 99国产精品一区| 日韩女优视频免费观看| 亚洲人一二三区| 免费成人在线观看视频| 色狠狠综合天天综合综合| 精品福利av导航| 亚洲一区二区三区自拍| 成人一区二区三区视频在线观看| 精品视频一区二区不卡| 国产欧美日韩中文久久| 三级成人在线视频| av中文字幕不卡| 日韩精品一区二区在线观看| 亚洲天堂成人在线观看| 国产.欧美.日韩| 日韩欧美高清一区| 午夜免费欧美电影| 色综合天天综合网国产成人综合天| 精品国产乱码久久久久久闺蜜 | 国产91丝袜在线播放0| 欧美日韩一区小说| 亚洲日本在线观看| jizzjizzjizz欧美| 久久精品欧美一区二区三区麻豆| 日本欧美一区二区在线观看| 91久久精品一区二区三区| 国产欧美精品一区二区三区四区| 蜜桃久久久久久久| 欧美一区二区高清| 日韩电影一区二区三区四区| 欧美日韩在线播放三区四区| 亚洲丝袜制服诱惑| 91麻豆国产香蕉久久精品| 中文字幕成人在线观看| 成人精品一区二区三区中文字幕| 精品免费日韩av| 精品一区二区三区免费播放| 日韩一区二区三区视频在线| 日韩二区在线观看| 6080国产精品一区二区| 亚洲国产毛片aaaaa无费看| 欧亚一区二区三区| 亚洲国产综合色| 欧美剧情片在线观看| 日韩福利电影在线| 欧美成人一区二区三区| 国产精品亚洲视频| 亚洲少妇屁股交4| 欧美午夜视频网站| 美女视频网站久久| 久久精品一区蜜桃臀影院| 国产一区二区精品久久91| 国产色婷婷亚洲99精品小说| 丰满白嫩尤物一区二区| 亚洲视频一二区| 欧美美女黄视频| 久久69国产一区二区蜜臀| 久久嫩草精品久久久精品一| eeuss鲁片一区二区三区在线看| 最新欧美精品一区二区三区| 欧美图片一区二区三区| 美女在线视频一区| 国产精品国产三级国产aⅴ中文| 色综合天天狠狠| 美女视频黄免费的久久| 亚洲国产成人在线| 欧美日韩一区精品| 极品美女销魂一区二区三区| 中文字幕在线观看一区二区| 欧美日本在线播放| 国产成人久久精品77777最新版本| 亚洲欧洲精品一区二区精品久久久| 色综合中文字幕国产| 性做久久久久久久久| 久久免费美女视频| 欧美日韩电影在线播放| 国产一区二区精品久久99| 一区二区三区波多野结衣在线观看| 日韩一区二区三| 在线视频国产一区| 国产麻豆精品95视频| 亚洲chinese男男1069| 国产午夜精品理论片a级大结局| 欧美性xxxxxx少妇| yourporn久久国产精品| 久久国产精品色| 午夜精品福利一区二区三区蜜桃| 久久久99精品免费观看不卡| 欧美老女人在线| 99久久亚洲一区二区三区青草| 麻豆91在线观看| 午夜视频一区在线观看| 亚洲欧美国产高清| 国产日韩欧美精品在线| 91麻豆精品国产| 欧洲精品视频在线观看| 成人动漫一区二区在线| 激情综合色播激情啊| 天天影视网天天综合色在线播放| 亚洲色图色小说| 国产精品久久久久婷婷二区次| 欧美第一区第二区| 制服丝袜中文字幕一区| 91免费在线看| 91在线丨porny丨国产| 国产一区欧美日韩| 国产在线精品一区二区不卡了| 五月天丁香久久| 亚洲成人动漫一区| 亚洲国产综合在线| 亚洲午夜羞羞片| 一区二区三区不卡视频在线观看| 亚洲欧美日韩国产一区二区三区| 亚洲欧美自拍偷拍| 中文字幕在线一区免费| 国产精品久久久久四虎| 国产精品不卡一区二区三区| 亚洲欧美综合色| 亚洲精品日韩综合观看成人91| 国产精品久久一卡二卡| 亚洲欧洲一区二区三区| 亚洲人亚洲人成电影网站色| 一二三区精品福利视频| 亚洲电影中文字幕在线观看| 天天做天天摸天天爽国产一区| 亚洲制服丝袜一区| 琪琪久久久久日韩精品| 美国十次综合导航| 国产精品12区| 国产suv一区二区三区88区| 国产精品一级片| 不卡的电视剧免费网站有什么| 91麻豆免费在线观看| 欧美影院精品一区| 欧美一区二区啪啪| 久久久久国产精品厨房| 国产精品午夜在线| 亚洲精品乱码久久久久久久久 | 91.麻豆视频| 日韩欧美一级精品久久| 国产欧美一区二区精品忘忧草| 亚洲欧洲国产日韩| 天堂久久一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 成人在线一区二区三区| 欧洲精品在线观看| 久久亚洲一区二区三区四区| 亚洲欧美在线高清| 视频在线在亚洲| 成人动漫av在线| 91精品欧美一区二区三区综合在 | 亚洲欧洲av另类| 无码av中文一区二区三区桃花岛| 国产米奇在线777精品观看| 91麻豆免费观看| 精品国产乱码久久久久久久 | 精品国产三级电影在线观看| 国产精品电影一区二区三区| 奇米色一区二区| 色综合天天性综合| 久久久一区二区三区|