Three.js3D 視野拡大効果実装方法

小云云
小云云オリジナル
2018-01-18 14:33:022729ブラウズ

この記事では主に 3D 視野スケーリング効果を実現するための three.js を詳しく紹介しますので、興味のある方は参考にしていただければ幸いです。

まず、three.js とは何か、そしてそれが何をするのかについては、もう知っているはずです。分からない場合は、Baidu にアクセスしてください。

編集者が皆さんにおすすめする記事: Three.js クイック スタート チュートリアル

私は昨日、three.js の 3D 視野の縮小および拡大効果は、カメラの遠焦点と近焦点を使用することで達成できることを発見しました。 。


ズームアウト後:

ここで視点カメラが使用されます:


//照相机配置
  var fov = 40;//拍摄距离
  var near = 1;//最小范围
  var far = 1000;//最大范围
  var camera = new THREE.PerspectiveCamera(fov, window.innerWidth / window.innerHeight, near, far);

ここで、fov の値を変更し、カメラを更新できます。


camera.fov = fov;//fov是变量哦 
camera.updateProjectionMatrix();
renderer.render(scene, camera);

さらに: 私たちは皆、ズームイン効果を実現するためにマウスの上下ホイールを使用することに慣れていますので、コードを見てください


canvas.addEventListener('mousewheel', mousewheel, false);
    //鼠标滑轮
    function mousewheel(e) {
      e.preventDefault();
      //e.stopPropagation();
      if (e.wheelDelta) { //判断浏览器IE,谷歌滑轮事件
        if (e.wheelDelta > 0) { //当滑轮向上滚动时
          fov -= (near < fov ? 1 : 0);
        }
        if (e.wheelDelta < 0) { //当滑轮向下滚动时
          fov += (fov < far ? 1 : 0);
        }
      } else if (e.detail) { //Firefox滑轮事件
        if (e.detail > 0) { //当滑轮向上滚动时
          fov -= 1;
        }
        if (e.detail < 0) { //当滑轮向下滚动时
          fov += 1;
        }
      }
      camera.fov = fov;
      camera.updateProjectionMatrix();
      renderer.render(scene, camera);
      //updateinfo();
    }

関連する推奨事項:

three.js チュートリアル3D立方体の描画

3DマップのThree.js実装例の共有

3D変換効果を実現するためのHTML5とCSS3の例の詳細な説明

以上がThree.js3D 視野拡大効果実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。