相关疑难解决方法(0)

THREE.js正交相机变焦到鼠标点

我正在为我们的THREE.js应用程序制作正交相机.基本上,该相机将以2D形式向用户呈现场景(用户可以选择在2D和3D相机之间切换).此摄像机将允许平移和缩放到鼠标点.我有平移工作,我有缩放工作,但没有缩放到鼠标点.这是我的代码:

import React from 'react';
import T from 'three';

let panDamper = 0.15;

let OrthoCamera = React.createClass({
  getInitialState: function () {
    return {
      distance: 150,
      position: { x: 8 * 12, y: 2 * 12, z: 20 * 12 },
    };
  },
  getThreeCameraObject: function () {
    return this.camera;
  },
  applyPan: function (x, y) { // Apply pan by changing the position of the camera
    let newPosition = {
      x: this.state.position.x + x * -1 * panDamper,
      y: this.state.position.y + y …
Run Code Online (Sandbox Code Playgroud)

javascript camera zoom three.js

14
推荐指数
1
解决办法
1484
查看次数

Three.js 3D 缩放到鼠标位置

我有下一个问题。我有一个用 Three.js +orbitControls.js 制作的用于相机处理的项目。有一个场景,上面有一个简单的立方体和相机。我有一个来自orbitControls.js 的相机,当我做鼠标滚轮时,它会朝屏幕中心放大/缩小(默认行为)。我需要修改它,以便将放大/缩小到 3D 对象上的鼠标位置,就像在 3D 编辑器中一样,如 3D Max、搅拌机。

我确实理解逻辑应该是这样的:从您开始缩放的位置获取鼠标的位置,实际上您想要放大的位置,存储该值,放大并获取新的鼠标位置,找到之间的偏移量第一个鼠标位置和当前,并在放大期间将相机移动到该偏移量。但是,它无法正常工作。大多数情况下,我认为这可能是我的相机坐标的问题,以及我想放大的位置。

这是我的代码:

 window.onload = function() {

        var renderer = new THREE.WebGLRenderer();
        var width = 640;
        var height = 480;
        renderer.setSize( width, height );
        var div = document.getElementById('canvas')
        div.appendChild( renderer.domElement );

        var scene = new THREE.Scene();

            camera = new THREE.PerspectiveCamera(
            70,
            width / height,
            0.1,
            10000
        );
        camera.position.set( 0, 10, 10 );
        camera.lookAt( scene.position );

        control = new THREE.OrbitControls( camera );

        var geometry = new THREE.CubeGeometry( 5, 5, 5 ); …
Run Code Online (Sandbox Code Playgroud)

javascript 3d camera three.js

5
推荐指数
1
解决办法
5908
查看次数

THREE.js 将正交相机安装到场景中

我搜索了许多有关堆栈溢出的相关问题,但我找不到这个问题的答案。

我的场景中有一大群动态的 Object3D,并用正交相机正面观察它们。

我想要一个简单的函数,在调用时,它会简单地匹配正交相机的上/左/下/右/缩放属性,以正确适应 Object3D 组。

我尝试了各种方法,但我的代码都不值得发布。我需要从一个全新的角度来看待这个问题(双关语)。我找到了各种其他答案,讨论改变相机的视场,一旦你知道从组的边界框的表面到相机的距离,但我不知道如何用正交相机来实现它,因为(据我尝试过)fov 属性不适用于它(也许它实际上适用,我只是不知道)。

所以我不太喜欢索要代码,但尽管如此,我还是想要一个函数,它可以自动调整正交相机的适当属性,以适应作为参数传递给它的对象,例如:

function fitOrthographicCameraToObject3DGroup(group) {
    //implement here (my question)
}
Run Code Online (Sandbox Code Playgroud)

javascript camera three.js

3
推荐指数
1
解决办法
6600
查看次数

标签 统计

camera ×3

javascript ×3

three.js ×3

3d ×1

zoom ×1