<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      1:添加點(diǎn)擊事件

          window.addEventListener('click', this.onMouseClick, false);

      2:在點(diǎn)擊事件中獲取具體信息

          // 監(jiān)聽(tīng)鼠標(biāo)點(diǎn)擊事件
          onMouseClick(event) {
              event.preventDefault();
              this.currentPartition = {}
              this.showHeight = false;
              // console.log(event)
              // 將鼠標(biāo)位置轉(zhuǎn)換成歸一化設(shè)備坐標(biāo)(-1 到 +1)
              // this.elem.clientWidth, this.elem.clientHeight
              // let x = event.clientX  - (window.innerWidth - this.elem.clientWidth)
              // let y = event.clientY  - (window.innerHeight - this.elem.clientHeight)
              // mouse.x = (  event.clientX / window.innerWidth ) * 2 - 1;
              // mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
              // console.log('event.clientY')
              // console.log(event)
              this.mouseTop = event.clientY-renderer.domElement.getBoundingClientRect().top +'px';
              this.mouseLeft = event.clientX-renderer.domElement.getBoundingClientRect().left+3+'px';
              const mouse = new THREE.Vector2();
              // 轉(zhuǎn)換為webgl坐標(biāo)系下的鼠標(biāo)位置
              mouse.x = ((event.clientX - renderer.domElement.getBoundingClientRect().left) / renderer.domElement.clientWidth) * 2 - 1;
              mouse.y = -((event.clientY - renderer.domElement.getBoundingClientRect().top) / renderer.domElement.clientHeight) * 2 + 1;
              // console.log(mouse)
              // // 使用鼠標(biāo)位置更新射線投射器
              raycaster.setFromCamera(mouse, camera);
              
              // // 計(jì)算鼠標(biāo)點(diǎn)擊的所有物體
              const intersects = raycaster.intersectObjects(scene.children, true);
              
              // 如果有物體被點(diǎn)擊,輸出它的信息
              if (intersects.length > 0) {
                  // 獲取最近的交點(diǎn)對(duì)象和交點(diǎn)坐標(biāo)
                  const intersect = intersects[0];
                  const point = intersect.point; // 交點(diǎn)在世界坐標(biāo)中的位置
                  const object = intersect.object; // 被點(diǎn)擊的對(duì)象
                  const distanceToCamera = intersect.distance; // 從相機(jī)到交點(diǎn)的距離(可以用來(lái)計(jì)算高度)
                  // console.log('Clicked on object:', object);
                  // console.log('Intersection  ---------------  point:');
                  // console.log(point);
                  this.mouseCurrentHeight = parseInt(parseFloat((point.z-2.2).toFixed(2)) * 100) / 100;// Math.floor(point.z-1);
                  this.showHeight = true;
                  // if(this.timerHeight){
                  //     clearInterval(this.timerHeight)
                  // }
                  // this.timerHeight = setInterval(()=>{
                  //     this.showHeight = false;
                  //     clearInterval(this.timerHeight)
                  // },1500)
                  // console.log('Distance to camera:', distanceToCamera);
                  
                  // // 如果需要計(jì)算高度,可以這樣做:
                  // // 假設(shè)相機(jī)位于y=0的位置,則可以計(jì)算高度為:point.y - cameraPosition.y;
                  // const cameraPosition = new THREE.Vector3();
                  // camera.getWorldPosition(cameraPosition);
                  // const height = point.y - cameraPosition.y; // 注意:這取決于你的場(chǎng)景設(shè)置,可能需要調(diào)整以適應(yīng)實(shí)際情況。
                  // console.log('Height from camera:', height);
                  return
                  // // 取第一個(gè)被點(diǎn)擊的物體
                  // let intersect = null;
                  // console.log('輸出被點(diǎn)擊的物體信息');
                  // intersects.forEach((ele) => {
                  //     // console.log('ele');
                  //     // console.log(ele);
                  //     // if(ele.object.name == "partitionName"){
                  //         intersect = ele;
                  //     // }
                  // })
                  // if(intersect){
                  //     // 輸出被點(diǎn)擊的物體信息
                  //     console.log('輸出被點(diǎn)擊的物體信息');
                  //     console.log(intersect.object);
                  //     // if(intersect.object.partitionInfo.volume){
                  //     //     intersect.object.partitionInfo.volume = Number(intersect.object.partitionInfo.volume).toFixed(2)
                  //     // }
                  //     // this.currentPartition = { ...intersect.object.partitionInfo }
                  //     // console.log(intersects);
                  // }
                  // 你可以獲取更多的信息,例如點(diǎn)的位置、面的法線等
                  // console.log(intersect.point);
                  // console.log(intersect.face.normal);
              }
          },
      View Code

      備住:由于我這里展示3d模型的區(qū)域不是全屏所以點(diǎn)擊時(shí)候做了處理需要轉(zhuǎn)化一下坐標(biāo)系。代碼如下:

              this.mouseTop = event.clientY-renderer.domElement.getBoundingClientRect().top +'px';
              this.mouseLeft = event.clientX-renderer.domElement.getBoundingClientRect().left+3+'px';
              const mouse = new THREE.Vector2();
              // 轉(zhuǎn)換為webgl坐標(biāo)系下的鼠標(biāo)位置
              mouse.x = ((event.clientX - renderer.domElement.getBoundingClientRect().left) / renderer.domElement.clientWidth) * 2 - 1;
              mouse.y = -((event.clientY - renderer.domElement.getBoundingClientRect().top) / renderer.domElement.clientHeight) * 2 + 1;
              // console.log(mouse)

       

      posted on 2025-04-30 09:13  劉世濤6192  閱讀(40)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 日韩一区二区三区亚洲一| 人妻精品中文字幕av| 国产精品久久毛片| 国产成人精品无码免费看| 亚洲av成人在线一区| 国产精品尤物乱码一区二区| 在线观看潮喷失禁大喷水无码| 国内精品久久久久久久coent | 久久国产福利播放| 99精品国产中文字幕| av综合亚洲一区二区| 国产精品老熟女免费视频| 久久婷婷五月综合色99啪ak| 久久综合给合久久狠狠97色 | 亚洲综合色婷婷中文字幕| 欧美亚洲日本国产综合在线美利坚 | 精品无码人妻| 亚洲va久久久噜噜噜久久狠狠| 日韩欧美一卡2卡3卡4卡无卡免费2020 | 国产女同一区二区在线| 国产精品高潮无码毛片| 亚洲精品动漫免费二区| 精品人妻少妇一区二区三区在线| 亚洲欧美自偷自拍视频图片| 国产大学生粉嫩无套流白浆| 中文字幕av一区二区三区| 国产成人午夜福利在线小电影| 亚洲国产精品成人av网| 99久久精品久久久久久清纯| 日韩国产成人精品视频| 久久永久视频| 少妇高潮流白浆在线观看| 亚洲国产精品人人做人人爱| 高清有码国产一区二区| 国产中文一区卡二区不卡| 日韩精品 中文字幕 视频在线| 亚洲春色在线视频| 国产综合有码无码中文字幕 | 日韩成av在线免费观看| 午夜成年男人免费网站| 国产成人午夜福利在线播放|