js 之threejs地球旋轉(zhuǎn)

如果報(bào)這個(gè)錯(cuò)
DOMException: Failed to execute 'texImage2D' on 'WebGLRenderingContext': Tainted canvases may not be loaded
問(wèn)題解決:
其實(shí)還是因?yàn)榭缬虻膯?wèn)題,嘗試使用webstorm打開(kāi)即可瀏覽

效果:

代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3Dmap</title>
    <style>
        body{
            margin: 0;
        }
        #canvasBox{width:100%;height:99.5%;position: absolute;}
    </style>

</head>
<body>
<div id="canvasBox"></div>
<script src="https://cdn.bootcss.com/three.js/r76/three.min.js"></script>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
<script>
    var canvasBox = document.getElementById("canvasBox");
    var W = $("#canvasBox").width();
    var H = $("#canvasBox").height();
    //隨瀏覽器窗口變化而變化
    function onWindowResize() {
        camera.aspect = window.innerWidth / window.innerHeight;
        camera.updateProjectionMatrix();
        renderer.setSize( window.innerWidth, window.innerHeight );
    }

    $(window).on("resize",function(){
        onWindowResize();
    })
    var num = 0;
    var scene,camera,renderer,light;
    function intScene(){
        scene = new THREE.Scene();
    }
    function intCamera(){
        camera = new THREE.PerspectiveCamera(45,W/H,1,1000);
        camera.position.set(0,0,400);
        camera.up.set(0,1,0);
        camera.lookAt({x:0,y:0,z:0})
    }
    function intRender(){
        renderer = new THREE.WebGLRenderer({antialias:true});
        //renderer = new THREE.CanvasRenderer();
        renderer.setSize(W,H);
        canvasBox.appendChild(renderer.domElement);
    }
    function intLight(){
        light=new THREE.DirectionalLight(0xffffff,0.6);
        light.position.set(0,0,400);
        scene.add(light);
    }
    var xkbg,earth,texts;
    function intModels(){
        /* 宇宙背景 */
        var yz_geometry = new THREE.SphereGeometry(500,500,50);
        var yz_material = new THREE.MeshPhongMaterial({
            map:THREE.ImageUtils.loadTexture('./bg.png'),
            side: THREE.DoubleSide
        });
        xkbg= new THREE.Mesh(yz_geometry,yz_material);
        xkbg.position.set(0,0,0);
        scene.add(xkbg);
        //地球
        var earth_geometry = new THREE.SphereGeometry(100,50,50);
        var earth_material = new THREE.MeshPhongMaterial({
            map:THREE.ImageUtils.loadTexture('./earth.jpg'),
            side: THREE.DoubleSide
        });
        earth= new THREE.Mesh(earth_geometry,earth_material);
        earth.position.set(0,0,0);
        xkbg.add(earth);
    }
    var mouseX,mouseY,isMove=true;
    //自轉(zhuǎn)
    function zizhuan(){
        if(isMove){
            requestAnimationFrame(zizhuan);
            xkbg.rotation.y-=0.002;
            renderer.render(scene,camera);
        }
    }
    //拖拽
    document.onmousedown = function(e){
        isMove = false;
        mouseX = e.pageX;
        mouseY = e.pageY;
    }
    document.onmousemove = function rt(e){
        if(!isMove){
            var disX = e.pageX - mouseX;
            var disY = e.pageY - mouseY;
            requestAnimationFrame(zizhuan);
            xkbg.rotation.x = xkbg.rotation.x>0.8?0.8:xkbg.rotation.x;
            xkbg.rotation.x = xkbg.rotation.x<-0.8?-0.8:xkbg.rotation.x;
            xkbg.rotation.x+= disY*0.00005* Math.PI;
            xkbg.rotation.y+= disX*0.0001* Math.PI;
            renderer.render(scene,camera);
        }
    }
    document.onmouseup = function(){
        console.log(xkbg.rotation.y)
        isMove = true;
        setTimeout(function(){
            zizhuan();
        },2000)
    }

    //滑動(dòng)鼠標(biāo)讓地球放大縮小
    function intsScale(){
        $(document).on('mousewheel DOMMouseScroll', function (ev){
            var e = ev||event;
            e.preventDefault();
            var value = e.originalEvent.wheelDelta || -e.originalEvent.detail;
            var delta = Math.max(-1, Math.min(1, value));
            if(delta == 1){
                num++;
                num=num>10?10:num;
            }else {
                num--;
                num = num < -15 ? -15 : num;
            }
            camera.position.set(0,0,400+num*10);
        });
    }
    function intStart(){
        intScene();
        intCamera();
        intRender();
        intLight();
        intModels();
        zizhuan();
        intsScale();
        renderer.render(scene,camera);
    }
    intStart();

</script>
</body>
</html>

原圖

背景


地球

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末权逗,一起剝皮案震驚了整個(gè)濱河市举塔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奉狈,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涩惑,死亡現(xiàn)場(chǎng)離奇詭異仁期,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)竭恬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)跛蛋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人痊硕,你說(shuō)我怎么就攤上這事赊级。” “怎么了岔绸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵此衅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我亭螟,道長(zhǎng)挡鞍,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任预烙,我火速辦了婚禮墨微,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扁掸。我一直安慰自己翘县,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布谴分。 她就那樣靜靜地躺著锈麸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牺蹄。 梳的紋絲不亂的頭發(fā)上忘伞,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音沙兰,去河邊找鬼氓奈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鼎天,可吹牛的內(nèi)容都是我干的舀奶。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼斋射,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼育勺!你這毒婦竟也來(lái)了但荤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涧至,失蹤者是張志新(化名)和其女友劉穎纱兑,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體化借,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡潜慎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蓖康。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铐炫。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蒜焊,靈堂內(nèi)的尸體忽然破棺而出倒信,到底是詐尸還是另有隱情,我是刑警寧澤泳梆,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布鳖悠,位于F島的核電站,受9級(jí)特大地震影響优妙,放射性物質(zhì)發(fā)生泄漏乘综。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一套硼、第九天 我趴在偏房一處隱蔽的房頂上張望卡辰。 院中可真熱鬧,春花似錦邪意、人聲如沸九妈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萌朱。三九已至,卻和暖如春策菜,著一層夾襖步出監(jiān)牢的瞬間晶疼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工做入, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冒晰,地道東北人同衣。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓竟块,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耐齐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浪秘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)蒋情、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,123評(píng)論 4 61
  • 嗯哼嗯哼蹦擦擦~~~ 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 4,910評(píng)論 0 6
  • 沒(méi)有你耸携,心都是死的棵癣。
    我和我丶閱讀 254評(píng)論 0 0
  • 每周堅(jiān)持寫(xiě)一首唐詩(shī),期待從量變到質(zhì)變的一天夺衍!
    快樂(lè)9766閱讀 183評(píng)論 0 0
  • 《不說(shuō)》 不說(shuō) 想念你時(shí)的怦然心動(dòng) 我會(huì)悄悄磨平 深藏于心 你不會(huì)知道 不說(shuō) 看你時(shí)眼里的萬(wàn)丈銀河 我會(huì)獨(dú)自隱埋 ...
    啊阿西閱讀 176評(píng)論 0 2