Three.js - 重置相机和控制器使镜头回到初始状态

在做三维项目的过程中,如果一个模型被用户不断旋转和缩放,会产生找不到模型的情况,因此就需要添加一个键盘事件,来使相机和控制器重置,找回模型。

  • 1、添加键盘控制
  • 2、重置相机和控制器
    Enter键重置浏览镜头.
    示例浏览地址:https://ithanmang.gitee.io/threejs/home/201807/20180702/01-resetCamera.html
主要代码
// 键盘监听方法
function onKeyDown(event) {
   
    switch (event.keyCode){
   
        case 13: //按下 enter 键时触发
            // 重新初始化相机和控制器
            initCamera();
            initControls();
            break;
    }
}

当相机被重新初始的时候,需要经相机重新加入控制器,因为此时被渲染的相机已经不再指向第一次初始化的那个对象,若想控制器在控制镜头就需要同步更新,否则会不能再控制镜头的缩放和旋转。
相机处于位置
这里写图片描述
按下 Enter 键 视角重置
这里写图片描述

示例代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>绘制字体模型</title>
    <style>

        body{
   
            margin: 0;
            overflow: hidden;
        }

    </style>
    <script src="../../libs/build/three.js"></script>

    <script src="../../libs/examples/js/Detector.js"></script>

    <script src="../../libs/examples/js/libs/dat.gui.min.js"></script>
    <script src="../../libs/examples/js/libs/stats.min.js"></script>

    <script src="../../libs/examples/js/controls/OrbitControls.js"></script>

    <script src="../../libs/extend/ThreeBSP.js"></script>
</head>
<body>
<div id="WebGL-output"></div>
<div id="Stats-output"><
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值