三个js摄像头定位

问题描述 投票:0回答:1

我希望用鼠标进行的相机移动与本网站上的相同。 https://bruno-simon.com/

我的代码,但它不起作用:

      document.addEventListener("mousedown", function (event) { 
        previousMousePosition.x = event.clientX;
        previousMousePosition.y = event.clientY;
        $("body").removeClass("grab");
        $("body").addClass("grabbing");
      });

      document.addEventListener("mouseup", function () {
        $("body").removeClass("grabbing");
        $("body").addClass("grab"); 
          var deltaMove = {
            x: event.clientX - previousMousePosition.x,
            y: event.clientY - previousMousePosition.y,
          };

          // Kameranın pozisyonunu güncelle
          camera.position.x -= deltaMove.x * 0.05;
          camera.position.z -= deltaMove.y * 0.05;

          // Önceki fare konumunu güncelle
          previousMousePosition = {
            x: event.clientX,
            y: event.clientY,
          };
     
      });
three.js
1个回答
0
投票

您不必自己制作类似地图的控件。 Three.js 有 MapControls

import { MapControls } from 'three/addons/controls/MapControls.js';

const camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set( 0, 20, 100 );

const controls = new MapControls( camera, renderer.domElement );
controls.enableDamping = true;

function animate() {

    requestAnimationFrame( animate );

    // required if controls.enableDamping or controls.autoRotate are set to true
    controls.update();

    renderer.render( scene, camera );

}

这里是地图控件的文档

© www.soinside.com 2019 - 2024. All rights reserved.