国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ThreeJs的場景實現(xiàn)鼠標拖動旋轉(zhuǎn)控制

這篇具有很好參考價值的文章主要介紹了ThreeJs的場景實現(xiàn)鼠標拖動旋轉(zhuǎn)控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

????????前面一個章節(jié)中已經(jīng)實現(xiàn)在場景中放置一個正方體,并添加燈光使得正方體可見。但是由于是靜態(tài)的還不能證明是3D的,我們需要添加一些控制器,使得通過鼠標控制正方體可以動起來,實現(xiàn)真正的3D效果,由此引入OrbitControls組件,他實質(zhì)是改變相機的位置,實現(xiàn)從不同角度看場景中的物體。下面源碼中已經(jīng)將控制的部分加入了,在最下方,注釋也寫的很詳細了。OrbitControls組件如果找不到在線引用的可以到我的csdn中下載

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <!--引入three.js,這是使用three必須的js文件,此處引入的是外網(wǎng)提供的three文件,如果引入有問題可以到官網(wǎng)下載three文件后引入本地的theee.js文件-->
? ? <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>
? ? <script src="three/OrbitControls.js"></script>
</head>

<body>
<script>
? ? /**
? ? ?* 創(chuàng)建場景對象Scene
? ? ?*/
? ? var scene = new THREE.Scene();

? ? /**
? ? ?* 相機設(shè)置
? ? ?*/
? ? //窗口寬度
? ? var width = window.innerWidth;
? ? //窗口高度
? ? var height = window.innerHeight;
? ? //窗口寬高比
? ? var k = width / height;
? ? //三維場景顯示范圍控制系數(shù),系數(shù)越大,顯示的范圍越大
? ? var s = 200;
? ? //創(chuàng)建相機對象
? ? var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
? ? //設(shè)置相機位置
? ? camera.position.set(200, 300, 200);
? ? //設(shè)置相機方向(指向的場景對象)
? ? camera.lookAt(scene.position);

? ? /**
? ? ?* 光源設(shè)置
? ? ?*/
? ? ? ? //新建點光源(常用光源分為點光源和環(huán)境光,點光源的效果類似燈泡,環(huán)境光的效果類似白天的太陽光)
? ? var point = new THREE.PointLight(0xffffff);
? ? //設(shè)置點光源的位置
? ? point.position.set(400, 200, 300);
? ? //將點光源添加到場景中
? ? scene.add(point);
?? ?

? ? /**
? ? ?* 創(chuàng)建網(wǎng)格模型,也就是3D模型
? ? ?*/
? ? //創(chuàng)建一個立方體幾何對象Geometry
? ? var geometry = new THREE.BoxGeometry(100, 100, 100);
? ? //給幾何體創(chuàng)建材質(zhì),這里是改為藍色,材質(zhì)對象Material
? ? var material = new THREE.MeshLambertMaterial({
? ? ? ? color: 0x0000ff
? ? });
? ? //網(wǎng)格模型對象Mesh
? ? var mesh = new THREE.Mesh(geometry, material);
? ? //網(wǎng)格模型添加到場景中,每個模型最終都要添加到場景中才會被渲染
? ? scene.add(mesh);

? ? /**
? ? ?* 創(chuàng)建渲染器對象
? ? ?*/
? ? //創(chuàng)建渲染器對象(渲染要等所有東西都加進去再渲染場景,創(chuàng)建和3D模型和光源沒有先后順序)
? ? var renderer = new THREE.WebGLRenderer();
? ? //設(shè)置渲染區(qū)域尺寸(設(shè)置的是整個屏幕的長度和寬度
? ? renderer.setSize(width, height);
? ? //設(shè)置渲染的背景色
? ? renderer.setClearColor(0xb9d3ff, 1);
? ? //body元素中插入canvas對象,也可以在頁面中添加div,并加上id,通過id指定在某個div中渲染
? ? document.body.appendChild(renderer.domElement);
? ? //執(zhí)行渲染操作 ? 指定場景、相機作為參數(shù)
? ? renderer.render(scene, camera);
?? ?
?? ?
?? ?//創(chuàng)建鼠標控制器?? ?
?? ?let controls = new THREE.OrbitControls(camera, renderer.domElement );
?? ?//監(jiān)聽控制器,每次拖動后重新渲染畫面
?? ?controls.addEventListener('change', function () {
?? ??? ?renderer.render(scene, camera); //執(zhí)行渲染操作
?? ?});

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

如果有問題,可以在我的評論區(qū)留言文章來源地址http://www.zghlxwxcb.cn/news/detail-728563.html

到了這里,關(guān)于ThreeJs的場景實現(xiàn)鼠標拖動旋轉(zhuǎn)控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • threejs 實現(xiàn)場景漫游效果(相機沿著自定義軌道移動)

    threejs 實現(xiàn)場景漫游效果(相機沿著自定義軌道移動)

    效果視頻: Video_22-06-15_18-10-11 實現(xiàn)思路:先創(chuàng)建一條曲線curve作為運動路線,然后使用const points = curve.getPoints(n)方法將curve分成n-1段;我們可以通過points[n] 獲取第n個點的坐標位置;將相機的位置設(shè)置為這個坐標,在動畫中不斷地修改n的值達到移動的效果;具體操作如下:

    2024年02月11日
    瀏覽(93)
  • ThreeJS-紋理旋轉(zhuǎn)、重復(十一)

    ThreeJS-紋理旋轉(zhuǎn)、重復(十一)

    ?文檔:three.js docs 關(guān)鍵代碼: ? ?//設(shè)置旋轉(zhuǎn)中心,默認左下角 ? ? docColorLoader.center.set(0.5,0.5); ? ? //圍繞旋轉(zhuǎn)中心逆時針旋轉(zhuǎn)45度 ? ? docColorLoader.rotation = Math.PI/4; 完整代碼: template ? div id=\\\"three_div\\\"/div /template ? script import * as THREE from \\\"three\\\"; import { OrbitControls } from \\\"three/example

    2023年04月08日
    瀏覽(18)
  • ThreeJS-縮放、旋轉(zhuǎn)(四)

    ThreeJS-縮放、旋轉(zhuǎn)(四)

    代碼: template ? div id=\\\"three_div\\\" ? /div /template ? script import * as THREE from \\\"three\\\"; import {OrbitControls } from \\\'three/examples/jsm/controls/OrbitControls\\\' export default { ? name: \\\"HOME\\\", ? components: { ? ? // vueQr, ? ? // glHome, ? }, ? data() { ? ? return { ? ? }; ? }, ? mounted() { ? ? //使用控制器控制3D拖動旋轉(zhuǎn)

    2024年02月08日
    瀏覽(28)
  • ThreeJS-3D教學六-物體位移旋轉(zhuǎn)

    ThreeJS-3D教學六-物體位移旋轉(zhuǎn)

    之前文章其實也有涉及到這方面的內(nèi)容,比如在ThreeJS-3D教學三:平移縮放+物體沿軌跡運動這篇中,通過獲取軌跡點物體動起來,其它幾篇文章也有旋轉(zhuǎn)的效果,本篇我們來詳細看下,另外加了tween.js知識點,tween可以很好的協(xié)助 three 做動畫,與之相似的還有 gsap.js方法類似。

    2024年02月04日
    瀏覽(24)
  • VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    目錄 一、Three.js是什么? 二、VUE簡單使用Three.js步驟 1.npm安裝 2.template模板 3.引入庫 4.定義全局變量 5.初始化場景 6.初始化相機 7.初始化燈光 8.初始化渲染器 9.創(chuàng)建模型(這里我搭建的模型是一個簡單雙面貨架模型) 10.根據(jù)瀏覽器窗口自適應(yīng) 11.初始化函數(shù),頁面加載完成時調(diào)用

    2024年02月03日
    瀏覽(104)
  • ThreeJS 炫酷特效旋轉(zhuǎn)多面體Web頁 Demo 01《ThreeJS 炫酷特效制作》

    ThreeJS 炫酷特效旋轉(zhuǎn)多面體Web頁 Demo 01《ThreeJS 炫酷特效制作》

    本案例為一個 threejs 的特效網(wǎng)頁,大小球體進行包裹,外球體為透明材質(zhì),但是進行了線框渲染,使其能夠通過外球踢查看其內(nèi)球體。 注:案例參考源于互聯(lián)網(wǎng),在此做代碼解釋,侵刪 本案例除 ThreeJS 外不適用任何第三方框架,放心食用 懶的同學可以直接下載代碼,打賞作

    2024年02月08日
    瀏覽(23)
  • three.js鼠標控制場景旋轉(zhuǎn)

    鼠標控制旋轉(zhuǎn)

    2024年02月17日
    瀏覽(26)
  • Threejs進階之一:基于vite+vue3+threejs構(gòu)建三維場景

    Threejs進階之一:基于vite+vue3+threejs構(gòu)建三維場景

    前面的章節(jié)我們都是通過HTML+JS的方式創(chuàng)建三維場景,從這一章節(jié)開始,我們后面將使用vite+vue3+threejs來構(gòu)建三維場景。 打開vscode的終端管理器,輸入如下命令 在彈出的選擇框架提醒中,按上下鍵盤鍵,選擇Vue,然后回車 選擇JavaScript,回車 提示項目創(chuàng)建完成, 輸入cd vue3-t

    2024年02月12日
    瀏覽(25)
  • ThreeJS-3D教學一:基礎(chǔ)場景創(chuàng)建

    ThreeJS-3D教學一:基礎(chǔ)場景創(chuàng)建

    Three.js 是一個開源的 JS 3D 圖形庫,用于創(chuàng)建和展示高性能、交互式的 3D 圖形場景。它建立在 WebGL 技術(shù)之上,并提供了豐富的功能和工具,使開發(fā)者可以輕松地構(gòu)建令人驚嘆的 3D 可視化效果。 Three.js 提供了一套完整的工具和 API,用于創(chuàng)建和管理 3D 場景、幾何體、紋理、光照

    2024年02月07日
    瀏覽(25)
  • Threejs入門之三:讓物體跟隨鼠標動起來

    Threejs入門之三:讓物體跟隨鼠標動起來

    上一節(jié)我們創(chuàng)建了一個三維的立方體,將其放在了瀏覽器窗口中,但是目前來講它只是一個靜態(tài)的圖片,我們并不能通過鼠標控制其旋轉(zhuǎn)、縮放和移動,這一節(jié)我們來實現(xiàn)用鼠標控制物體的運動。 首先我們要了解一個概念,在三維場景中,我們要控制物體旋轉(zhuǎn),實際上不是物

    2024年02月11日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包