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

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

?? b04e4667e0c5001d1cd1e38dc83e3a87

?? 使用java實現applet插件
??
?? 第 1 頁 / 共 2 頁
字號:
package JavaTerrain;

import java.applet.Applet;
import java.awt.*;
import java.awt.image.*;
import java.net.URL;

import java.net.MalformedURLException;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.*;

import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.JButton;




public class Tevi extends Applet {

       //=== VARIABLES =====================================================================================

        private String[][] AppletInfo = {  { "Texture",      "String", "Terrain texture file"      },
                                           { "HeightField",  "String", "height values, grayscale"  },
                                           { "SelectionMap", "String", "map to select from"        },
                                           { "NumTilesX",    "int",    "nr. of Tiles (horizontal)" },
                                           { "NumTilesY",    "int",    "nr. of Tiles (vertical)"   },
                                           { "ROIWidth",     "int",    "width of ROI selected map" } };

        private Image     LoadImage = null;                     // image containing height values
        private Texture2D Texture   = null;                     // texture

        private int[] HeightMap;                                // array of height values
        private int   Width;                                    // width and height of height map

        private static int NumTilesX = -1;                      // for region of interest selection
        private static int NumTilesY = -1;                      // num. of tiles in x,y direction
	private static int ROIWidth  =  0;                      // w/h of ROI height map

        private static String TextureFile = null;               // texture file name
        private static String HeightFile  = null;               // height values file name
        private static String MapFile     = null;               // map of region file name

        private SimpleUniverse SimpleU              = null;     // a Convenience Utility class
        private BranchGroup    ObjRoot              = null;     // top BG in SimpleU's geom. branch
        private BranchGroup    NavRoot              = null;     // BG for Key-/MouseBehavior
        private BoundingLeaf   AlwaysOnBoundingLeaf = null;     // to make naviagtion always active
        private JButton Abutton; 

	private TMouseBehavior MouseBeh;                        // mouse navigation



       //=== METHODS =======================================================================================

        public void init() {

               //--- configure 3D canvas -----------------------------------------------------------------

                setLayout(new BorderLayout());

                GraphicsConfigTemplate3D gctTmpl  = new GraphicsConfigTemplate3D();
                GraphicsEnvironment      gEnv     = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice           gDevice  = gEnv.getDefaultScreenDevice();
                GraphicsConfiguration    gConfig  = gDevice.getBestConfiguration(gctTmpl);
                Canvas3D                 canvas3D = new Canvas3D(gConfig);

                canvas3D.setSize(getWidth(), getHeight());
                canvas3D.setStereoEnable(true);
                add("Center", canvas3D);


               //--- setup 2 BranchGroups ----------------------------------------------------------------

                SimpleU = new SimpleUniverse(canvas3D);
                ObjRoot = new BranchGroup();
		NavRoot = new BranchGroup();

                ObjRoot.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
                ObjRoot.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
                NavRoot.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
                NavRoot.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
                SimpleU.addBranchGraph(ObjRoot);
                SimpleU.addBranchGraph(NavRoot);


               //--- create an "always on"-bounding leaf -------------------------------------------------

                AlwaysOnBoundingLeaf          = new BoundingLeaf(new BoundingSphere(new Point3d(),
                                                                                    100000));
                PlatformGeometry platformGeom = new PlatformGeometry();

                platformGeom.addChild(AlwaysOnBoundingLeaf);
                platformGeom.compile();

                SimpleU.getViewingPlatform().setPlatformGeometry(platformGeom);


               //--- add basic mouse navigation ----------------------------------------------------------

	        BranchGroup mbg = new BranchGroup();
                MouseBeh        = new TMouseBehavior();

                MouseBeh.setSchedulingBoundingLeaf(AlwaysOnBoundingLeaf);
		mbg.addChild(MouseBeh);
                NavRoot.addChild(mbg);

                Abutton.setText("Option");
                add(Abutton);

	       //--- region selection? -------------------------------------------------------------------

                if ((MapFile == null) && (NumTilesX == -1)) {  MapFile = getParameter("SelectionMap");  }

                if (MapFile != null) {  selectROI();    }
		else                 {  initTerrain();  }
        }



        private void selectROI() {

               //--- set up map plane geometry ----------------------------------------------------

                QuadArray plane = new QuadArray(4, GeometryArray.COORDINATES
                                                 | GeometryArray.TEXTURE_COORDINATE_2);

                float aspectRatio = (float) getWidth() / (float) getHeight();
                
                Point3f p = new Point3f();
                p.set(-1.0f,  1.0f / aspectRatio, 0.0f);  plane.setCoordinate(0, p);
                p.set(-1.0f, -1.0f / aspectRatio, 0.0f);  plane.setCoordinate(1, p);
                p.set( 1.0f, -1.0f / aspectRatio, 0.0f);  plane.setCoordinate(2, p);
                p.set( 1.0f,  1.0f / aspectRatio, 0.0f);  plane.setCoordinate(3, p);

                TexCoord2f q = new TexCoord2f();
                q.set(0.0f, 1.0f);  plane.setTextureCoordinate(0, 0, q);
                q.set(0.0f, 0.0f);  plane.setTextureCoordinate(0, 1, q);
                q.set(1.0f, 0.0f);  plane.setTextureCoordinate(0, 2, q);
                q.set(1.0f, 1.0f);  plane.setTextureCoordinate(0, 3, q);


               //--- load world map texture  ------------------------------------------------------

                                 LoadImage = getImage(getCodeBase(), MapFile);
                TextureLoader    texLoader = new TextureLoader(LoadImage, this);
                ImageComponent2D ic2d      = texLoader.getImage();
                Texture2D        texture   = new Texture2D(Texture.BASE_LEVEL, Texture.RGB,
                                                           ic2d.getWidth(), ic2d.getHeight());
                texture.setImage(0, ic2d);
                texture.setEnable(true);
                texture.setMinFilter(Texture.NICEST);
                texture.setMagFilter(Texture.NICEST);


               //--- set up map plane appearance --------------------------------------------------

                Appearance appear = new Appearance();

                appear.setTexture(texture);


               //--- display the map --------------------------------------------------------------

                Shape3D     planeObj = new Shape3D(plane, appear);
                BranchGroup mapRoot  = new BranchGroup();

                mapRoot.setCapability(BranchGroup.ALLOW_DETACH);
                mapRoot.addChild(planeObj);
                mapRoot.compile();


                ObjRoot.addChild(mapRoot);
                SimpleU.getViewingPlatform().setNominalViewingTransform();


               //--- start ROI selection mode -----------------------------------------------------

		MouseBeh.setSelectROIMode(this);
        }



        public void selectROI2(int selX, int selY) {

               //--- determine maine file to be loaded ----------------------------------------------

                if (NumTilesX == -1) {  NumTilesX = Integer.parseInt(getParameter("NumTilesX"));  }
                if (NumTilesY == -1) {  NumTilesY = Integer.parseInt(getParameter("NumTilesY"));  }

                int tileWidth  = getWidth()  / NumTilesX;
                int tileHeight = getHeight() / NumTilesY;

                int tileX      = Math.min((selX / tileWidth ) + 1, NumTilesX);
                int tileY      = Math.min((selY / tileHeight) + 1, NumTilesY);

                HeightFile     = createFileName(tileX, tileY);


               //--- load selected height file ------------------------------------------------------

	        loadHeightData(HeightFile);

                int picW = Width;
                int picH = Width;


               //--- determine width/height of COMPLETE height data set -----------------------------

                int complW = picW * NumTilesX;
                int complH = picH * NumTilesY;

                if (ROIWidth == 0) {  
                
                        ROIWidth = checkWidth(Integer.parseInt(getParameter("ROIWidth")));  
                }

                if (ROIWidth > Math.min(complW, complH)) {

                        ROIWidth = checkWidth(Math.min(complW, complH));
                }


               //--- determine center pixel coordinates ---------------------------------------------

                int centerX = complW * selX / getWidth();
                int centerY = complH * selY / getHeight();
                int rw2     = ROIWidth / 2;

                if (centerX < rw2)              {  centerX = rw2;               }
                if (centerY < rw2)              {  centerY = rw2;               }
                if (centerX > complW - 1 - rw2) {  centerX = complW - 1 - rw2;  }
                if (centerY > complH - 1 - rw2) {  centerY = complH - 1 - rw2;  }


               //--- determine TL and BR tile to be loaded ------------------------------------------

                int left   = (centerX - rw2) / picW + 1;
                int right  = (centerX + rw2) / picW + 1;
                int top    = (centerY - rw2) / picH + 1;
                int bottom = (centerY + rw2) / picH + 1;


               //--- load all files -----------------------------------------------------------------

                HeightMap = new int[ROIWidth * ROIWidth];

                int pixY  = centerY - rw2;
                int nextY = picH * top - 1;

                for (int y = top; y <= bottom; y++) {

                        int pixX  = centerX - rw2;
                        int nextX = picW * left - 1;

                        for (int x = left; x <= right; x++) {

                                loadHeightData(createFileName(x, y));

                                if (nextX > centerX + rw2) {  nextX = centerX + rw2;  }
                                if (nextY > centerY + rw2) {  nextY = centerY + rw2;  }

                                grabPixels(LoadImage, pixX % picW, pixY % picH,
                                           nextX - pixX + 1, nextY - pixY + 1,
                                           HeightMap,
                                           (pixY - (centerY - rw2)) * ROIWidth
                                            + (pixX - (centerX - rw2)),
                                           ROIWidth);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲精品国产欧美| 精品国产成人系列| 色综合久久中文综合久久97| 国产suv一区二区三区88区| 五月综合激情婷婷六月色窝| 一区二区三区小说| 亚洲影院理伦片| 亚洲第一av色| 日韩国产欧美视频| 免费av成人在线| 国产自产2019最新不卡| 丰满放荡岳乱妇91ww| 北岛玲一区二区三区四区| 91亚洲精品久久久蜜桃| 欧美四级电影在线观看| 制服丝袜亚洲精品中文字幕| 精品三级在线观看| 亚洲欧美怡红院| 亚洲图片欧美色图| 久久狠狠亚洲综合| 成人黄色一级视频| 欧美性色综合网| 日韩欧美电影一二三| 国产调教视频一区| 一区二区三区不卡视频 | 92国产精品观看| 欧美精品久久久久久久久老牛影院| 91精品婷婷国产综合久久| 日韩高清不卡一区二区| 日韩不卡免费视频| 99久免费精品视频在线观看| 在线亚洲免费视频| 久久亚洲综合av| 中文字幕永久在线不卡| 三级在线观看一区二区| 成人午夜激情影院| 欧美日本一道本在线视频| 国产性天天综合网| 日韩精品一二区| 97精品久久久久中文字幕| 777精品伊人久久久久大香线蕉| 日本一区二区成人在线| 亚洲v中文字幕| 国产成a人亚洲精| 欧美日本一道本| 日本一二三四高清不卡| 香蕉久久一区二区不卡无毒影院| 国产精品一二三四五| 欧美日韩性生活| 国产精品久久久久久久久免费桃花 | 欧美精品一区二区三区蜜臀| 亚洲欧洲中文日韩久久av乱码| 久久99精品国产麻豆婷婷| 色欧美日韩亚洲| 国产精品每日更新| 国产美女一区二区| 欧美一区二区三区精品| 亚洲精品成人在线| www.色精品| 久久免费美女视频| 精品一区二区三区影院在线午夜| 91福利精品第一导航| 专区另类欧美日韩| av在线这里只有精品| 久久精品亚洲乱码伦伦中文| 久久精品国产秦先生| 51精品久久久久久久蜜臀| 亚洲综合清纯丝袜自拍| 99re8在线精品视频免费播放| ●精品国产综合乱码久久久久 | 成人aaaa免费全部观看| 国产三级精品三级| 国产91精品一区二区麻豆网站| 欧美一区日韩一区| 丝袜诱惑亚洲看片| 欧美一级淫片007| 日本欧美一区二区在线观看| 制服丝袜中文字幕一区| 青青草精品视频| 欧美电视剧在线观看完整版| 日韩—二三区免费观看av| 日韩美女主播在线视频一区二区三区| 日韩一区欧美二区| 538prom精品视频线放| 免费观看久久久4p| 久久久久久亚洲综合| 成人性生交大合| 有码一区二区三区| 欧美性受极品xxxx喷水| 无码av中文一区二区三区桃花岛| 69堂成人精品免费视频| 精品一区二区三区在线视频| 国产欧美日韩视频一区二区| 成人丝袜视频网| 亚洲最大的成人av| 日韩一级黄色大片| 成人午夜大片免费观看| 亚洲精品国产一区二区精华液 | 国产精品久久久久久亚洲毛片| av在线综合网| 天天亚洲美女在线视频| 精品国产乱码91久久久久久网站| 国产一区二区三区精品视频| 亚洲色图制服丝袜| 欧美电影免费观看高清完整版在| 国产高清在线观看免费不卡| 亚洲一区二区欧美| 久久久久久亚洲综合影院红桃 | 欧美高清在线一区| 欧美午夜精品久久久久久超碰| 免费人成精品欧美精品| 国产精品久久国产精麻豆99网站| 欧美日韩在线观看一区二区 | 精品视频1区2区3区| 国产美女视频一区| 亚洲一区二区欧美日韩| 久久蜜臀精品av| 8v天堂国产在线一区二区| 国产精品911| 日本欧美在线观看| 亚洲视频在线一区| 久久久精品tv| 日韩一级片在线观看| 99久久夜色精品国产网站| 日本女人一区二区三区| 亚洲美女屁股眼交3| 国产视频视频一区| 日韩欧美成人激情| 日本电影欧美片| 成人美女视频在线看| 裸体歌舞表演一区二区| 亚洲成人免费视| 亚洲午夜在线电影| 亚洲精品亚洲人成人网| 中文字幕在线一区| 久久久久久9999| 2023国产精品视频| 日韩欧美一级特黄在线播放| 欧美日本韩国一区二区三区视频| 91丝袜高跟美女视频| 成人小视频免费观看| 国产成人精品午夜视频免费| 国内精品久久久久影院色 | 成人免费视频国产在线观看| 久久精品噜噜噜成人av农村| 丝袜亚洲另类丝袜在线| 日韩综合小视频| 日韩电影在线观看网站| 午夜精品福利一区二区三区av| 亚洲精品国产a久久久久久| 国产精品第四页| 亚洲欧美在线视频| 亚洲精品欧美在线| 一二三四社区欧美黄| 一片黄亚洲嫩模| 日韩精品91亚洲二区在线观看| 日韩电影在线一区二区三区| 亚洲成a人v欧美综合天堂下载| 亚洲第一狼人社区| 日韩国产精品久久| 久久精品国产**网站演员| 天使萌一区二区三区免费观看| 日本亚洲欧美天堂免费| 久久激情五月婷婷| 国产自产v一区二区三区c| 成人中文字幕合集| 色婷婷国产精品综合在线观看| 欧美日韩卡一卡二| 欧美一区午夜精品| 国产欧美一区二区精品性色超碰| 国产午夜精品一区二区| 亚洲欧洲日本在线| 午夜电影网一区| 国产精品亚洲专一区二区三区| 丁香网亚洲国际| 欧美日韩专区在线| 久久亚洲一级片| 亚洲色大成网站www久久九九| 午夜一区二区三区在线观看| 免费亚洲电影在线| 9i在线看片成人免费| 欧美调教femdomvk| 久久精品在线观看| 一区二区三区.www| 国产美女精品人人做人人爽| 色综合一区二区| 欧美va亚洲va香蕉在线| 一区精品在线播放| 久热成人在线视频| 91福利国产成人精品照片| 日韩欧美一区在线| 亚洲欧美日韩电影| 精品一区二区影视| 欧美日韩你懂的| 亚洲国产精品自拍| 国产一区日韩二区欧美三区| 一本大道综合伊人精品热热| 精品粉嫩超白一线天av| 亚洲国产视频在线| 色香蕉久久蜜桃|