国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Three.js獲取鼠標(biāo)點(diǎn)擊的三維坐標(biāo)示例代碼

2024-05-06 15:19:24
字體:
供稿:網(wǎng)友

由于工作需要,但是對(duì)于three.js又是一竅不通,網(wǎng)上的資料又很少,所以上來就讓我獲取坐標(biāo),真是一個(gè)頭兩個(gè)大。好歹最后終于實(shí)現(xiàn)了。

既然已經(jīng)是想要獲取鼠標(biāo)點(diǎn)擊的三維坐標(biāo)了,相信你camera對(duì)象和scene都已經(jīng)有了,如果不了解的小伙伴,可以先去看一下這兩個(gè)對(duì)象。這里主要說一下怎么獲取到三維坐標(biāo),原理性的東西不提。上代碼:

function onDocumentMouseDown( event ) {  event.preventDefault();  var vector = new THREE.Vector3();//三維坐標(biāo)對(duì)象  vector.set(    ( event.clientX / window.innerWidth ) * 2 - 1,    - ( event.clientY / window.innerHeight ) * 2 + 1,    0.5 );  vector.unproject( camera );  var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());  var intersects = raycaster.intersectObjects(scene.children);  if (intersects.length > 0) {    var selected = intersects[0];//取第一個(gè)物體    console.log("x坐標(biāo):"+selected.point.x);    console.log("y坐標(biāo):"+selected.point.y);    console.log("z坐標(biāo):"+selected.point.z);  }

我理解的就是鼠標(biāo)點(diǎn)擊的時(shí)候屏幕收到的是二維坐標(biāo),這個(gè)二維坐標(biāo)和相機(jī)連線,在視角的方向上延伸,形成一條射線,這條射線會(huì)和場(chǎng)景中的物體相交,接收這些相交的所有物體,第一個(gè)物體就是離相機(jī)最近的,最后一個(gè)就是離相機(jī)最遠(yuǎn)的。一般就把第一個(gè)相交的物體作為鼠標(biāo)點(diǎn)擊的物體。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持錯(cuò)新站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 洛宁县| 保亭| 石狮市| 保亭| 揭阳市| 普兰县| 莱西市| 长治市| 吐鲁番市| 建瓯市| 万全县| 抚州市| 武汉市| 香格里拉县| 石首市| 承德市| 永康市| 拜泉县| 金堂县| 萝北县| 大安市| 全州县| 盖州市| 卫辉市| 剑阁县| 红河县| 安图县| 保山市| 中山市| 海阳市| 襄垣县| 穆棱市| 正定县| 洪雅县| 宝兴县| 子洲县| 麻阳| 昌都县| 京山县| 临沂市| 赣州市|