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

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

?? truncatedearth.java

?? world wind java sdk 源碼
?? JAVA
字號:
/*
Copyright (C) 2001, 2008 United States Government
as represented by the Administrator of the
National Aeronautics and Space Administration.
All Rights Reserved.
*/
package gov.nasa.worldwind.examples;

import gov.nasa.worldwind.Model;
import gov.nasa.worldwind.geom.*;
import gov.nasa.worldwind.globes.Globe;
import gov.nasa.worldwind.layers.*;
import gov.nasa.worldwind.render.*;
import gov.nasa.worldwind.terrain.*;
import gov.nasa.worldwind.util.Logging;

import java.awt.*;
import java.awt.image.*;

/**
 * Elevation model override example to produce a truncated globe.
 *
 * @author Patrick Murris
 * @version $Id: TruncatedEarth.java 9709 2009-03-27 01:33:50Z tgaskins $
 */
public class TruncatedEarth extends ApplicationTemplate
{
    public static class AppFrame extends ApplicationTemplate.AppFrame
    {

        public AppFrame()
        {
            super(true, true, false);

            Model model = getWwd().getModel();
            Globe globe = model.getGlobe();

            // Use our truncated elevation model
            Sector sector = Sector.fromDegrees(0, 90, -100, -20);
            double elevation = -4e6;
            globe.setElevationModel(new TruncatedEarthElevationModel(sector, elevation));

            // Add truncated sector surface image layer
            RenderableLayer sectionLayer = new RenderableLayer();
            sectionLayer.setPickEnabled(false);
            sectionLayer.setName("Earth Section");
            BufferedImage sectionImage = PatternFactory.createPattern(PatternFactory.GRADIENT_HLINEAR,
                    1f, Color.RED.brighter().brighter(),  Color.RED.darker().darker());
            BufferedImage coreImage = PatternFactory.createPattern(PatternFactory.GRADIENT_HLINEAR,
                    1f, Color.ORANGE.brighter().brighter(),  Color.ORANGE.darker().darker());
            // Extend image one degree west and east to properly cover the section edge
            sectionLayer.addRenderable(new SurfaceImage(sectionImage, Sector.fromDegrees(
                    Math.max(sector.getMinLatitude().degrees - 2, -90), Math.min(sector.getMaxLatitude().degrees + 2, 90),
                    sector.getMinLongitude().degrees - 1, sector.getMaxLongitude().degrees + 1)));
            // Shrink image sector to paint core only
            sectionLayer.addRenderable(new SurfaceImage(coreImage, Sector.fromDegrees(
                    sector.getMinLatitude().degrees + 1, sector.getMaxLatitude().degrees - 1,
                    sector.getMinLongitude().degrees + 2, sector.getMaxLongitude().degrees - 2)));

            insertBeforePlacenames(getWwd(), sectionLayer);

            // Turn off sky gradient
            for (Layer layer : model.getLayers())
                    if (layer instanceof SkyGradientLayer)
                            layer.setEnabled(false);

            // Update layer panel
            getLayerPanel().update(getWwd());

            // Max out orbit view far clipping distance to keep the whole globe visible
            getWwd().getView().setFarClipDistance(globe.getDiameter() * 3);

        }

        private class TruncatedEarthElevationModel extends CompoundElevationModel
        {
            private Sector truncatedSector;
            private double truncatedElevation;

            public TruncatedEarthElevationModel(Sector truncatedSector, Double truncatedElevation)
            {
                BasicElevationModelFactory emf = new BasicElevationModelFactory();
                this.addElevationModel(emf.createFromConfigFile("config/LegacyEarthElevationModel.xml"));
                this.truncatedSector = truncatedSector;
                this.truncatedElevation = truncatedElevation;
            }
            
            public double getElevation(Angle latitude, Angle longitude)
            {
                if (latitude == null || longitude == null)
                {
                    String message = Logging.getMessage("nullValue.LatLonIsNull");
                    Logging.logger().severe(message);
                    throw new IllegalArgumentException(message);
                }

                if (this.truncatedSector.contains(latitude, longitude))
                    return this.truncatedElevation;

                return super.getElevation(latitude, longitude);
            }

            public double getElevations(Sector sector, java.util.List<? extends LatLon> latlons,
                double targetResolution, double[] buffer)
            {
                double resolutionAchieved = super.getElevations(sector, latlons, targetResolution, buffer);

                int i = 0;
                for (LatLon ll : latlons)
                {
                    if (this.truncatedSector.contains(ll))
                        buffer[i] = this.truncatedElevation;
                    i++;
                }

                return resolutionAchieved;
            }

            public double[] getExtremeElevations(Sector sector)
            {
                double[] elevations = super.getExtremeElevations(sector);
                if (this.truncatedSector.intersects(sector))
                    elevations[0] = this.truncatedElevation;
                return elevations;
            }
        }

//        private BufferedImage createSectionImage(Dimension size)
//        {
//            BufferedImage image = new BufferedImage(size.width,  size.height, BufferedImage.TYPE_4BYTE_ABGR);
//            Graphics2D g2 = image.createGraphics();
//            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//            // Background gradient
//            g2.setPaint(new GradientPaint((float)size.width / 2, 0f, Color.ORANGE,
//                    (float)size.height / 2, (float)size.height - 1, Color.RED));
//            g2.fillRect(0, 0, size.width, size.height);
//            // Some layers
//            g2.setPaint(Color.BLACK);
//            g2.fillRect(0, (int)((float)size.height * .9), size.width, 2);
//            g2.fillRect(0, (int)((float)size.height * .6), size.width, 4);
//            g2.fillRect(0, (int)((float)size.height * .4), size.width, 1);
//            return image;
//        }

    }

    public static void main(String[] args)
    {
        ApplicationTemplate.start("World Wind Truncated Earth", AppFrame.class);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线日韩国产精品| 亚洲日本中文字幕区| 久久精品男人天堂av| 亚洲欧美国产77777| 韩国三级中文字幕hd久久精品| 色综合久久综合中文综合网| 2023国产一二三区日本精品2022| 午夜在线电影亚洲一区| 91在线视频网址| 久久综合久久鬼色中文字| 国产不卡视频在线播放| 亚洲精品在线电影| 亚洲国产综合在线| 在线观看亚洲成人| 免费高清在线一区| 欧美一区中文字幕| 一区二区欧美国产| 欧美这里有精品| 日本aⅴ亚洲精品中文乱码| 精品国产sm最大网站免费看| 成人av免费在线观看| 国产精品久久久久久久久晋中| 丁香激情综合国产| 中文字幕免费观看一区| 国产成人综合网| 久久精品视频免费| 欧美日韩一区三区| 天天影视涩香欲综合网| 欧美精品色一区二区三区| 亚洲综合色视频| 欧美久久高跟鞋激| 国产91精品一区二区麻豆网站 | 在线免费观看日本欧美| 日韩影院在线观看| 91精品国产综合久久福利软件 | 国产欧美精品一区| 精品亚洲aⅴ乱码一区二区三区| 日韩情涩欧美日韩视频| 精品中文字幕一区二区小辣椒| 国产精品毛片久久久久久久| 97精品国产露脸对白| 日韩va欧美va亚洲va久久| 欧美成人一区二区三区片免费 | 中文字幕一区二区三区四区| 国产精品18久久久久久久久| 国产免费成人在线视频| 欧美在线你懂的| 国产精品一二三| 国产一区二区成人久久免费影院 | 久久九九99视频| 欧美日韩国产大片| 久久不见久久见中文字幕免费| 久久综合久久综合亚洲| 色婷婷综合久久久久中文一区二区| 国产又粗又猛又爽又黄91精品| 亚洲成a人片在线观看中文| 国产午夜精品美女毛片视频| 日韩视频国产视频| 精品视频一区 二区 三区| 99精品热视频| 国产成人综合自拍| 国产精品亚洲第一| 麻豆高清免费国产一区| 中文一区在线播放| 欧美va亚洲va国产综合| 6080国产精品一区二区| 国产美女一区二区三区| 裸体健美xxxx欧美裸体表演| 午夜精品在线视频一区| 一区二区不卡在线播放| 亚洲精品福利视频网站| 精品99999| 日韩一本二本av| 正在播放亚洲一区| 在线电影国产精品| 欧美日韩成人综合在线一区二区| 在线影视一区二区三区| 国产一区二区女| 国产精品77777| 国产美女av一区二区三区| 国产一区二区三区不卡在线观看| 国内精品视频一区二区三区八戒| 老汉av免费一区二区三区| 激情六月婷婷久久| 国产一区激情在线| 国产精品一区二区久久精品爱涩| 国产一区二区视频在线播放| 国产精品911| av午夜一区麻豆| 国产一区三区三区| 成人综合婷婷国产精品久久蜜臀 | 久久精品亚洲一区二区三区浴池| 26uuu亚洲综合色| 国产人成一区二区三区影院| 国产精品视频一二三区| 亚洲精品视频免费看| 一区二区三区国产豹纹内裤在线| 五月天视频一区| 美女mm1313爽爽久久久蜜臀| 国产精品正在播放| 色狠狠色狠狠综合| 欧美成人免费网站| 欧美国产精品中文字幕| 一区二区不卡在线播放| 久久精品噜噜噜成人av农村| 豆国产96在线|亚洲| 欧美综合在线视频| 日韩精品中午字幕| 日韩欧美国产高清| 日本一区二区三区视频视频| 亚洲精品乱码久久久久久日本蜜臀| 亚洲午夜激情网页| 国产伦精品一区二区三区免费迷| 99视频一区二区| 7777精品伊人久久久大香线蕉 | 亚洲视频在线观看一区| 日本亚洲一区二区| 国产精品一区二区久激情瑜伽| 91久久线看在观草草青青| 欧美一区二区三区免费大片| 欧美激情一二三区| 性做久久久久久免费观看欧美| 国产成人综合在线| 6080yy午夜一二三区久久| 国产精品全国免费观看高清| 日韩精品一二区| 91免费看视频| 欧洲国产伦久久久久久久| 久久综合九色综合欧美亚洲| 亚洲一卡二卡三卡四卡无卡久久| 国产自产v一区二区三区c| 91久久精品午夜一区二区| 久久视频一区二区| 婷婷国产v国产偷v亚洲高清| av亚洲精华国产精华| 久久女同性恋中文字幕| 欧美激情中文字幕| 久久精品久久综合| 欧美精品少妇一区二区三区| 亚洲三级电影网站| 国产精品18久久久久久久久 | 国产乱码一区二区三区| 欧美精品一二三四| 一区二区在线观看av| www.66久久| 欧美激情一二三区| 韩国视频一区二区| 日韩欧美123| 日本伊人午夜精品| 欧美美女一区二区在线观看| 国产精品久久久久久久久免费樱桃| 国内外精品视频| 亚洲精品一区二区三区四区高清 | 日本一区二区三区在线观看| 捆绑变态av一区二区三区| 91麻豆精品国产综合久久久久久| 洋洋成人永久网站入口| 91伊人久久大香线蕉| 国产精品欧美久久久久一区二区| 国产一区久久久| 久久久五月婷婷| 国产自产2019最新不卡| 欧美va亚洲va| 国内精品国产三级国产a久久| 欧美大片免费久久精品三p| 日本欧美一区二区在线观看| 欧美一区二区三区免费观看视频| 丝袜美腿一区二区三区| 欧美一级视频精品观看| 免费人成在线不卡| 日韩精品一区二区三区swag| 国内精品写真在线观看| 久久嫩草精品久久久精品| 国产成人精品亚洲午夜麻豆| 国产欧美一区二区精品性色 | 亚洲一区二区欧美激情| 在线免费观看视频一区| 亚洲午夜成aⅴ人片| 制服丝袜亚洲播放| 毛片av中文字幕一区二区| 精品国产91亚洲一区二区三区婷婷| 久久99这里只有精品| 久久久激情视频| 成人免费毛片嘿嘿连载视频| 最新日韩av在线| 欧美日韩国产美女| 美女国产一区二区三区| 久久精品视频一区二区三区| 91在线精品一区二区| 亚洲一区二区中文在线| 欧美日韩成人激情| 99视频热这里只有精品免费| 国产精品久久久久久亚洲毛片 | 亚洲精品一区二区三区精华液| 国产一区二区毛片| **性色生活片久久毛片| 欧美日韩欧美一区二区| 精品影视av免费| 最近中文字幕一区二区三区| 欧美人妖巨大在线|