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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cameracontrollerblender.java

?? 基于java的3d開(kāi)發(fā)庫(kù)。對(duì)坐java3d的朋友有很大的幫助。
?? JAVA
字號(hào):
package vsdk.toolkit.gui;import java.awt.event.MouseEvent;import java.awt.event.MouseWheelEvent;//import java.awt.event.KeyEvent;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.common.Matrix4x4;import vsdk.toolkit.environment.Camera;public class CameraControllerBlender extends CameraController {    private Camera camera;    public CameraControllerBlender(Camera camera) {        this.camera = camera;    }    public boolean processMouseEventAwt(MouseEvent mouseEvent) {      return true;    }    private double augmentLogarithmic(double val, double EPSILON)    {        if ( val < 0.001 ) val += 0.0001;        else if ( val < 0.01 ) val += 0.001;        else if ( val < 0.1 - EPSILON ) val += 0.01;        else if ( val < 1 - EPSILON ) val += 0.1;        else if ( val < 10 - EPSILON ) val += 1;        else if ( val < 100 - EPSILON ) val += 10;        else if ( val < 1000 - EPSILON ) val += 100;        else if ( val < 10000 - EPSILON ) val += 1000;        else if ( val < 100000 - EPSILON ) val += 10000;        else if ( val < 1000000 - EPSILON ) val += 100000;        else if ( val < 10000000 - EPSILON ) val *= 2;        else val = 10000000;          return val;    }      private double diminishLogarithmic(double val, double EPSILON)    {        if ( val > 10000000 + EPSILON ) val /= 2;        else if ( val > 1000000 + EPSILON ) val -= 1000000;        else if ( val > 100000 + EPSILON ) val -= 100000;        else if ( val > 10000 + EPSILON ) val -= 10000;        else if ( val > 1000 + EPSILON ) val -= 1000;        else if ( val > 100 + EPSILON ) val -= 100;        else if ( val > 10 + EPSILON ) val -= 10;        else if ( val > 1 + EPSILON ) val -= 1;        else if ( val > 0.1 + EPSILON ) val -= 0.1;        else if ( val > 0.01 + EPSILON ) val -= 0.01;        else if ( val > 0.001 + EPSILON ) val -= 0.001;        else if ( val > 0.0001 + EPSILON ) val -= 0.0001;        else val = 0.0001;        return val;    }      public boolean processKeyPressedEvent(KeyEvent keyEvent) {	System.out.println("MY EVENT!");        return false;    }    public boolean processKeyPressedEventAwt(java.awt.event.KeyEvent keyEvent) {        // Local copy of the Camera's internal parameters        Vector3D eyePosition;        Vector3D focusedPosition;        Matrix4x4 R; // Camera rotation matrix        int projectionMode;        double fov;        double orthogonalZoom;        double nearPlaneDistance;        double farPlaneDistance;        // Internal variables to control the interaction        char unicode_id;        int keycode;        double deltaMov = 0.1;        double angleInc;        boolean updated = false;        double EPSILON = 0.0001;        int mask;        int SHIFT_MASK = keyEvent.SHIFT_DOWN_MASK;        int CTRL_MASK = keyEvent.CTRL_DOWN_MASK;        Vector3D u, v, w;        Matrix4x4 DR, T1, T2, COMPUESTA;        // 1. Obtain a copy of the camera's internal parameters        eyePosition = camera.getPosition();        focusedPosition = camera.getFocusedPosition();        R = camera.getRotation();        projectionMode = camera.getProjectionMode();        fov = camera.getFov();        orthogonalZoom = camera.getOrthogonalZoom();        nearPlaneDistance = camera.getNearPlaneDistance();        farPlaneDistance = camera.getFarPlaneDistance();        // 2. Calculate variables used for interaction manipulation        unicode_id = keyEvent.getKeyChar();        keycode = keyEvent.getKeyCode();        mask = keyEvent.getModifiersEx();        u = new Vector3D(R.M[0][0], R.M[1][0], R.M[2][0]);        v = new Vector3D(R.M[0][1], R.M[1][1], R.M[2][1]);        w = new Vector3D(R.M[0][2], R.M[1][2], R.M[2][2]);        if ( fov > 90 ) angleInc = Math.toRadians(10);        else if ( fov > 45 ) angleInc = Math.toRadians(5);        else if ( fov > 15 ) angleInc = Math.toRadians(2.5);        else if ( fov > 5 ) angleInc = Math.toRadians(1);        else angleInc = Math.toRadians(0.1);        // 3. Event processing: update the copy of the camera's internal parameters//        if ( unicode_id == keyEvent.CHAR_UNDEFINED ) {            switch ( keycode ) {              case java.awt.event.KeyEvent.VK_X:                if ( (mask & SHIFT_MASK) == 0 ) {                    // Minuscula                    eyePosition.x -= deltaMov; focusedPosition.x -= deltaMov;                    updated = true;                }                else if ( (mask & SHIFT_MASK) != 0 ) {                    // Mayuscula                    eyePosition.x += deltaMov; focusedPosition.x += deltaMov;                    updated = true;                }                break;              case java.awt.event.KeyEvent.VK_NUMPAD5: // Rote el modo de proyeccion                switch ( projectionMode ) {                  case Camera.PROJECTION_MODE_PERSPECTIVE:                    projectionMode = Camera.PROJECTION_MODE_ORTHOGONAL;                    break;                  default:                    projectionMode = Camera.PROJECTION_MODE_PERSPECTIVE;                    break;                }                updated = true;                break;              case java.awt.event.KeyEvent.VK_NUMPAD4:                if ( (mask & CTRL_MASK) == 0 ) {                    // Rotation                    T1 = new Matrix4x4();                    DR = new Matrix4x4();                    T2 = new Matrix4x4();                    T1.translation(focusedPosition.multiply(-1));                    DR.axisRotation(-Math.toRadians(15), 0, 0, 1);                    T2.translation(focusedPosition);                    COMPUESTA = T2.multiply(DR.multiply(T1));                    eyePosition = COMPUESTA.multiply(eyePosition);                    R = COMPUESTA.multiply(R);                    updated = true;                }                else if ( (mask & CTRL_MASK) != 0 ) {                    // Translation                    eyePosition =                         eyePosition.add(v.multiply(deltaMov));                    focusedPosition =                         focusedPosition.add(v.multiply(deltaMov));                    updated = true;                }                break;              case java.awt.event.KeyEvent.VK_NUMPAD6:                if ( (mask & CTRL_MASK) == 0 ) {                    // Rotation                    T1 = new Matrix4x4();                    DR = new Matrix4x4();                    T2 = new Matrix4x4();                    T1.translation(focusedPosition.multiply(-1));                    DR.axisRotation(Math.toRadians(15), 0, 0, 1);                    T2.translation(focusedPosition);                    COMPUESTA = T2.multiply(DR.multiply(T1));                    eyePosition = COMPUESTA.multiply(eyePosition);                    R = COMPUESTA.multiply(R);                    updated = true;                }                else if ( (mask & CTRL_MASK) != 0 ) {                    // Translation                    eyePosition =                         eyePosition.substract(v.multiply(deltaMov));                    focusedPosition =                         focusedPosition.substract(v.multiply(deltaMov));                    updated = true;                }                break;              case java.awt.event.KeyEvent.VK_NUMPAD2:                if ( (mask & CTRL_MASK) == 0 ) {                    // Rotation                    T1 = new Matrix4x4();                    DR = new Matrix4x4();                    T2 = new Matrix4x4();                    T1.translation(focusedPosition.multiply(-1));                    DR.axisRotation(-Math.toRadians(15), v.x, v.y, v.z);                    T2.translation(focusedPosition);                    COMPUESTA = T2.multiply(DR.multiply(T1));                    eyePosition = COMPUESTA.multiply(eyePosition);                    R = COMPUESTA.multiply(R);                    updated = true;                }                else if ( (mask & CTRL_MASK) != 0 ) {                    // Translation                    eyePosition =                         eyePosition.substract(w.multiply(deltaMov));                    focusedPosition =                         focusedPosition.substract(w.multiply(deltaMov));                    updated = true;                }                break;              case java.awt.event.KeyEvent.VK_NUMPAD8:                if ( (mask & CTRL_MASK) == 0 ) {                    // Rotation                    T1 = new Matrix4x4();                    DR = new Matrix4x4();                    T2 = new Matrix4x4();                    T1.translation(focusedPosition.multiply(-1));                    DR.axisRotation(Math.toRadians(15), v.x, v.y, v.z);                    T2.translation(focusedPosition);                    COMPUESTA = T2.multiply(DR.multiply(T1));                    eyePosition = COMPUESTA.multiply(eyePosition);                    R = COMPUESTA.multiply(R);                    updated = true;                }                else if ( (mask & CTRL_MASK) != 0 ) {                    // Translation                    eyePosition =                         eyePosition.add(w.multiply(deltaMov));                    focusedPosition =                         focusedPosition.add(w.multiply(deltaMov));                    updated = true;                }                break;              case java.awt.event.KeyEvent.VK_NUMPAD1:                updated = true;                R.axisRotation(0, 0, 0, 1);                break;              case 107: // Warning: How to tell java.awt.event.KeyEvent.VK_NUMPAD_PLUS: ?                // Translation                eyePosition =                     eyePosition.add(u.multiply(deltaMov));                focusedPosition =                     focusedPosition.add(u.multiply(deltaMov));                updated = true;                break;              case 109: // Warning: How to tell java.awt.event.KeyEvent.VK_NUMPAD_LESS: ?                // Translation                eyePosition =                     eyePosition.substract(u.multiply(deltaMov));                focusedPosition =                     focusedPosition.substract(u.multiply(deltaMov));                updated = true;                break;            }/*        }        else {            switch ( unicode_id ) {              // Position              case 'y':                eyePosition.y -= deltaMov; focusedPosition.y -= deltaMov;                updated = true;                break;              case 'Y':                eyePosition.y += deltaMov; focusedPosition.y += deltaMov;                updated = true;                break;              case 'z':                eyePosition.z -= deltaMov; focusedPosition.z -= deltaMov;                updated = true;                break;              case 'Z':                eyePosition.z += deltaMov; focusedPosition.z += deltaMov;                updated = true;                break;               // Rotation              case 'S':                roll -= Math.toRadians(5);                while ( roll < 0 ) roll += Math.toRadians(360);                updated = true;                break;              case 's':                roll += Math.toRadians(5);                while ( roll > Math.toRadians(360) ) roll -= Math.toRadians(360);                updated = true;                break;                // View volume modification              case 'A':                if ( camera.getProjectionMode() == camera.PROJECTION_MODE_ORTHOGONAL ) {                    orthogonalZoom /= 2;                  }                  else {                    if ( fov < 0.1 - EPSILON ) fov += 0.1;                    else if ( fov < 1 - EPSILON ) fov++;                    else if ( fov < 175 - EPSILON ) fov += 5;                }                updated = true;                break;              case 'a':                if ( camera.getProjectionMode() == camera.PROJECTION_MODE_ORTHOGONAL ) {                    orthogonalZoom *= 2;                  }                  else {                    if ( fov > 5 + EPSILON ) fov -= 5;                    else if ( fov > 1 + EPSILON  ) fov--;                    else if ( fov > 0.1 + EPSILON  ) fov -= 0.1;                }                updated = true;                break;              case 'N':                nearPlaneDistance = augmentLogarithmic(nearPlaneDistance, EPSILON);                updated = true;              break;            case 'n':                nearPlaneDistance = diminishLogarithmic(nearPlaneDistance, EPSILON);                updated = true;              break;              case 'F':                farPlaneDistance = augmentLogarithmic(farPlaneDistance, EPSILON);                updated = true;              break;            case 'f':                farPlaneDistance = diminishLogarithmic(farPlaneDistance, EPSILON);                updated = true;              break;                  // Queries              case 'i':                System.out.println(camera);                break;            }        }*/        // Heuristic to simulate Blender's orthogonal behavior        double d = eyePosition.length();        if ( d < 0.1 ) {            orthogonalZoom = 10;          }          else {            orthogonalZoom = 1 / d;        }        // 4. Update camera's internal parameters from local copy        camera.setPosition(eyePosition);        camera.setFocusedPositionMaintainingOrthogonality(focusedPosition);        camera.setRotation(R);        camera.setOrthogonalZoom(orthogonalZoom);        camera.setFov(fov);        camera.setProjectionMode(projectionMode);        camera.setNearPlaneDistance(nearPlaneDistance);        camera.setFarPlaneDistance(farPlaneDistance);          return updated;    }    public boolean processKeyReleasedEventAwt(java.awt.event.KeyEvent keyEvent) {        return false;    }    public boolean processMousePressedEventAwt(MouseEvent e)    {        return false;    }    public boolean processMouseReleasedEventAwt(MouseEvent e)    {        return false;    }    public boolean processMouseClickedEventAwt(MouseEvent e)    {        return false;    }    public boolean processMouseMovedEventAwt(MouseEvent e)    {        return false;    }    public boolean processMouseDraggedEventAwt(MouseEvent e)    {        return false;    }    public boolean processMouseWheelEventAwt(MouseWheelEvent e)    {        return false;    }    public Camera getCamera()    {        return camera;    }    public void setCamera(Camera camera)    {        this.camera = camera;    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品在线观看一区二区| 欧美电影免费观看高清完整版在线观看| 精品一区二区三区免费| 午夜亚洲国产au精品一区二区| 一区二区不卡在线播放| 中文字幕日本不卡| 亚洲欧洲美洲综合色网| 中文字幕日韩精品一区 | 18成人在线观看| 中文字幕乱码久久午夜不卡| 国产精品水嫩水嫩| 国产精品久久久久久久午夜片| 中文欧美字幕免费| 国产精品九色蝌蚪自拍| 18成人在线视频| 亚洲宅男天堂在线观看无病毒| 亚洲第一激情av| 蜜桃视频免费观看一区| 九色综合狠狠综合久久| 国产在线看一区| 成人午夜免费电影| 91久久久免费一区二区| 日本伦理一区二区| 欧美日韩午夜在线| 日韩视频免费直播| 久久久不卡影院| 综合欧美一区二区三区| 亚洲国产欧美日韩另类综合| 日本不卡免费在线视频| 国产在线精品免费| 91社区在线播放| 欧美浪妇xxxx高跟鞋交| 精品剧情在线观看| 国产精品国产精品国产专区不片| 亚洲精品欧美在线| 日韩avvvv在线播放| 国产剧情一区二区三区| 国产成人精品综合在线观看 | 精品国产一二三区| 最近日韩中文字幕| 天堂在线亚洲视频| 国精产品一区一区三区mba桃花| 成人国产一区二区三区精品| 欧美亚洲精品一区| 精品不卡在线视频| 亚洲精品乱码久久久久久黑人 | 91啪亚洲精品| 欧美精品tushy高清| 国产亚洲综合色| 亚洲一级在线观看| 国产乱码精品一区二区三区五月婷| 粉嫩绯色av一区二区在线观看| 欧美性生活大片视频| 久久色在线观看| 一级特黄大欧美久久久| 美脚の诱脚舐め脚责91| 91在线你懂得| 欧美成人一级视频| 亚洲一区影音先锋| 国产99精品在线观看| 欧美精品黑人性xxxx| 中文字幕在线观看不卡| 美日韩一区二区| 91久久免费观看| 国产三级久久久| 婷婷夜色潮精品综合在线| 成人性生交大片免费看中文网站| 91精品黄色片免费大全| 亚洲色大成网站www久久九九| 久久精品国产精品亚洲红杏| 色综合久久九月婷婷色综合| 久久午夜羞羞影院免费观看| 午夜伊人狠狠久久| 色呦呦网站一区| 国产三级一区二区| 久久精品国产99国产| 欧美日韩国产乱码电影| 亚洲人123区| 成人免费视频视频| 久久你懂得1024| 美国十次了思思久久精品导航| 欧美自拍丝袜亚洲| 亚洲欧美在线观看| 成人性生交大片免费看中文 | 秋霞影院一区二区| 欧美亚洲国产一卡| xfplay精品久久| 99在线热播精品免费| 中文字幕不卡三区| 9191精品国产综合久久久久久| 成人性色生活片免费看爆迷你毛片| 亚洲精品在线观看视频| 国产精品色一区二区三区| 亚洲国产婷婷综合在线精品| 国产一区二区精品久久99| 欧美高清你懂得| 久久精品夜色噜噜亚洲a∨| 天天影视网天天综合色在线播放 | 欧美亚洲国产一卡| 国产精品久久久久久亚洲伦| 国产乱码精品一区二区三区av | 首页国产欧美日韩丝袜| 97国产精品videossex| 国产亚洲污的网站| 另类专区欧美蜜桃臀第一页| 欧美日韩卡一卡二| 一区二区三区在线观看视频| 色综合久久综合| 1024成人网| 北条麻妃国产九九精品视频| 久久在线免费观看| 九九九久久久精品| 日韩欧美视频在线| 蜜桃精品在线观看| 欧美日韩不卡在线| 日韩精品电影一区亚洲| 精品视频一区 二区 三区| 一二三区精品视频| 欧美在线一二三四区| 一区二区三区中文字幕| av在线播放一区二区三区| 亚洲麻豆国产自偷在线| 色综合色综合色综合| 美腿丝袜亚洲色图| 91麻豆精品国产91久久久久 | 国产精品亚洲一区二区三区在线| 精品少妇一区二区三区| 国产真实乱偷精品视频免| 久久夜色精品国产欧美乱极品| 国产成人av电影在线| 中文字幕av一区二区三区| 成人美女在线视频| 成人免费在线视频观看| 欧美在线啊v一区| 午夜激情久久久| 91精品欧美久久久久久动漫| 国产九色sp调教91| 中文字幕精品一区二区三区精品| 成人av电影在线观看| 亚洲女同ⅹxx女同tv| 欧美色区777第一页| 亚洲va天堂va国产va久| 精品粉嫩超白一线天av| 成人国产精品免费观看动漫| 亚洲欧洲精品天堂一级| 色综合久久中文字幕综合网 | 五月天激情综合| 亚洲精品在线观| 白白色亚洲国产精品| 亚洲精品欧美激情| 偷窥少妇高潮呻吟av久久免费| 亚洲欧美自拍偷拍色图| 亚洲乱码国产乱码精品精的特点 | 国产亲近乱来精品视频| 久久激情综合网| www.欧美精品一二区| 91网上在线视频| 色婷婷av一区二区三区软件| 久久久亚洲精品一区二区三区 | 91麻豆国产福利在线观看| 同产精品九九九| 国产婷婷色一区二区三区| 91麻豆国产福利在线观看| 日韩激情在线观看| 中文字幕av在线一区二区三区| 精品视频色一区| 国产一区二区三区日韩| 午夜不卡av在线| 国产亚洲精品aa| 欧美视频在线播放| 国产精品一区二区久激情瑜伽| 琪琪一区二区三区| 国产精品国产馆在线真实露脸| 欧美精品丝袜中出| 国产成人av一区二区三区在线观看| 亚洲综合在线电影| 国产清纯美女被跳蛋高潮一区二区久久w | 盗摄精品av一区二区三区| 亚洲国产精品一区二区久久| 国产亚洲精品久| 欧美一卡在线观看| 91免费看片在线观看| 韩国精品一区二区| 丝袜美腿亚洲一区| 亚洲男人的天堂av| 久久久国产综合精品女国产盗摄| 欧美日韩电影一区| 色综合久久综合网97色综合| 国产麻豆午夜三级精品| 日本v片在线高清不卡在线观看| 自拍偷在线精品自拍偷无码专区| 精品国产不卡一区二区三区| 欧美午夜寂寞影院| 99视频精品在线| 成人精品电影在线观看| 精品一区二区综合| 天堂在线一区二区| 夜夜爽夜夜爽精品视频| 亚洲色图在线播放| 亚洲欧美经典视频|