import * as THREE from 'three'
import {OrbitControls} from "three/addons";
import {gsap} from "gsap";
// const scene = new THREE.Scene()
// const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 2000)
// const renderer = new THREE.WebGLRenderer({
// antialias: true
// })
// renderer.setSize(window.innerWidth, window.innerHeight)
// renderer.render(scene, camera)
// const controls = new OrbitControls(camera, renderer.domElement)
const timelineCamera = gsap.timeline()
const timelineControls = gsap.timeline()
// 实现视角平滑移动方法
function translateCamera(cameraPosition, controlsTarget, duration) {
const _duration = duration ? duration : 1
return new Promise((resolve) => {
timelineCamera.to(camera.position, {
x: cameraPosition.x,
y: cameraPosition.y,
z: cameraPosition.z,
duration: _duration,
ease: 'power2.inOut',
onComplete: () => {
}
})
timelineControls.to(controls.target, {
x: controlsTarget.x,
y: controlsTarget.y,
z: controlsTarget.z,
duration: _duration,
ease: 'power2.inOut',
onComplete: () => {
}
})
setTimeout(() => {
resolve()
}, _duration)
})
}
threejs实现视角平滑移动
最新推荐文章于 2024-11-29 09:36:37 发布