(1)屏幕坐标转空间坐标
function transToThreeCoord(x,y){let mouse = new THREE.Vector3();mouse.x = (x/window.innerWidth)*2 -1;mouse.y = -(y/window.innerHeight)*2 + 1;return mouse;}
(2)空间坐标转二维坐标
/*** 将three.js三维坐标转换成屏幕上的二维坐标* @param THREE.Vector3 vector three.js三维坐标* @return {x:int,y:int} 屏幕坐标*/function transToScreenCoord(vector) {var screenCoord = {};vector.project(camera);screenCoord.x = (0.5 + vector.x / 2) * window.innerWidth;screenCoord.y = (0.5 - vector.y / 2) * window.innerHeight;return screenCoord;}
(3)圆周运动
// 声明一个变量angle表示角度位置let angle = 0;function render() {renderer.render(scene, camera);// 每次执行渲染函数redner时候,角度累加0.005angle += 0.005;// 圆周运动网格模型x坐标计算 绕转半径400var x = 400 * Math.sin(angle)// 圆周运动网格模型y坐标计算 绕转半径400var z = 400 * Math.cos(angle)// 每次执行render函数,更新需要做圆周运动网格模型Mesh的位置属性Mesh.position.set(x, 0, z);requestAnimationFrame(render);}render();
