threejs平滑地移动相机的位置,将其逐渐接近目标点位置(tweemjs)

这篇具有很好参考价值的文章主要介绍了threejs平滑地移动相机的位置,将其逐渐接近目标点位置(tweemjs)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、npm安装tweemjs

npm i @tweenjs/tween.js@^18

二、引入tweemjs

import * as TWEEN from 'tween.js';

三、使用

//更新相机位置
changeCameraPosition(findIndex) {
	console.log(camera.position)
	//解除滑动限制. 如果你在创建模型的时候设置了滑动平移放大缩小等限制在这里需要解除限制,不然达不到你想要的结果。
	controls.minDistance = 0;
	controls.maxPolarAngle = Math.PI / 1;
	controls.enableRotate = false
	controls.enableZoom = false
	controls.update();
	// 相机从当前位置camera.position飞行三维场景中某个世界坐标附近
	new TWEEN.Tween({
		// 相机开始坐标
		x: camera.position.x,
		y: camera.position.y,
		z: camera.position.z,
		// 相机开始指向的目标观察点
		tx: 0,
		ty: 0,
		tz: 0,
	})
	.to({
		// 相机结束坐标
		x: 0,
		y: 0,
		z: 0,
		// 相机结束指向的目标观察点
		tx: 0,
		ty: 0,
		tz: 0,
	}, 1000)
	.onUpdate(function (e) {
		//小程序中使用e,H5中使用this,获取结束的位置信息
		// 动态改变相机位置
		camera.position.set(this.x, this.y, this.z);
		// 模型中心点
		controls.target.set(this.tx, this.ty, this.tz);
		controls.update();//内部会执行.lookAt()
	})
	.start();
},

注:这里需要在requestAnimationFrame内调用TWEEN.update();不然动画不生效。文章来源地址https://www.toymoban.com/news/detail-531508.html

// 渲染场景
function animate() {
	requestAnimationFrame(animate);
	TWEEN.update();
	renderer.render(scene, camera);
}
animate();

到了这里,关于threejs平滑地移动相机的位置,将其逐渐接近目标点位置(tweemjs)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity虚拟相机Cinemachine-实现相机自动移动到指定位置

    介绍两种方法, 第一种使用虚拟相机自带DollyCart和DollyTrack进行设置; 第二种使用时间线Timeline和DollyTrack进行设置 1.首先添加图中三个虚拟相机 2.点击 DollyTrack,添加点,设置轨道 3.调整点的位置,使轨道在相机移动的起点和终点保持平滑 4.设置Dolly Cart,将轨道拖拽到Dolly

    2024年01月25日
    浏览(47)
  • VUE使用Three.js实现模型,点击交互,相机旋转视角跟随移动(Threejs中使用Tweenjs,含demo源码)

    目录 一、Three.js是什么? 二、VUE简单使用Three.js步骤 1.npm安装 2.template模板 3.引入库 4.定义全局变量 5.初始化场景 6.初始化相机 7.初始化灯光 8.初始化渲染器 9.创建模型(这里我搭建的模型是一个简单双面货架模型) 10.根据浏览器窗口自适应 11.初始化函数,页面加载完成时调用

    2024年02月03日
    浏览(69)
  • Unity丨移动相机朝向目标并确定目标在摄像机可视范围内丨摄像机注释模型丨摄像机移动丨不同尺寸模型优化丨

    本文提供的功能是摄像机朝向目标移动,并确定整个目标出现在摄像机视角内,针对不同尺寸的模型优化。 提示:这里可以添加技术名词解释 直接上代码 后期可扩展功能:类似点击目标完成视角移动等。

    2024年02月07日
    浏览(58)
  • Unity之用代码移动物体(平滑移动)

    因为移动的起点和终点都是不确定,所以这里用代码进行实现而不是动画(试过动画,但是发现无法成功添加clip) 物体移动常用的有两个方法,一个是Mathf.MoveTowards,一个是Mathf.Lerp,他们都用于值的平滑过渡 Mathf.MoveTowards          current:起点位置         target:目

    2024年02月07日
    浏览(41)
  • [threejs]相机与坐标

    搞清相机和坐标的关系在threejs初期很重要,否则有可能会出现写了代码,运行时一片漆黑的现象,这种情况就有可能是因为你相机没弄对。 先来看一下threejs中的坐标(世界坐标) 坐标轴好理解,大家只需要知道在three中不同颜色代表的轴就行,再就是坐标有正负之分。向前,

    2024年02月14日
    浏览(35)
  • threejs让模型始终面向相机

    需求:threejs导入3D模型,改变相机位置的同时,让模型始终面向相机。 实现方式:使用模型的lookAt()方法,设置模型lookAt的值 首次加载模型时,面向相机 相机云顶==运动时,模型面向相机

    2024年02月12日
    浏览(44)
  • ThreeJS-移动(三)

    关键代码 通过设置定位信息进行移动 mesh.position.set(0, 0, 0); 拖动物体:按住ctrl+按住鼠标左键 进行拖动 代码:  template   div id=\\\"three_div\\\"   /div /template   script import * as THREE from \\\"three\\\"; import {OrbitControls } from \\\'three/examples/jsm/controls/OrbitControls\\\' export default {   name: \\\"HOME\\\",   components:

    2024年02月10日
    浏览(46)
  • unity摄像机平滑移动旋转

    Unity中使用Vector3.SmoothDamp(平滑阻尼)方法进行跟随移动,可以使跟随看起来很平滑,而不显得突兀,最典型的示例就是相机平滑跟随角色移动。 SmoothDamp (current : Vector3, target : Vector3, ref currentVelocity : Vector3, smoothTime )  

    2024年02月11日
    浏览(52)
  • threejs使用gui改变相机的参数

    定义相机的配置: gui中加入调节fov的方法 实现效果 定义参数: 初始化相机,设置相机位置。 加入gui的配置 最后的效果  

    2024年02月12日
    浏览(36)
  • 信号平滑或移动平均滤波研究(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 信号平

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包