(1)屏幕坐标转空间坐标

    1. function transToThreeCoord(x,y){
    2. let mouse = new THREE.Vector3();
    3. mouse.x = (x/window.innerWidth)*2 -1;
    4. mouse.y = -(y/window.innerHeight)*2 + 1;
    5. return mouse;
    6. }

    (2)空间坐标转二维坐标

    1. /**
    2. * 将three.js三维坐标转换成屏幕上的二维坐标
    3. * @param THREE.Vector3 vector three.js三维坐标
    4. * @return {x:int,y:int} 屏幕坐标
    5. */
    6. function transToScreenCoord(vector) {
    7. var screenCoord = {};
    8. vector.project(camera);
    9. screenCoord.x = (0.5 + vector.x / 2) * window.innerWidth;
    10. screenCoord.y = (0.5 - vector.y / 2) * window.innerHeight;
    11. return screenCoord;
    12. }

    (3)圆周运动

    1. // 声明一个变量angle表示角度位置
    2. let angle = 0;
    3. function render() {
    4. renderer.render(scene, camera);
    5. // 每次执行渲染函数redner时候,角度累加0.005
    6. angle += 0.005;
    7. // 圆周运动网格模型x坐标计算 绕转半径400
    8. var x = 400 * Math.sin(angle)
    9. // 圆周运动网格模型y坐标计算 绕转半径400
    10. var z = 400 * Math.cos(angle)
    11. // 每次执行render函数,更新需要做圆周运动网格模型Mesh的位置属性
    12. Mesh.position.set(x, 0, z);
    13. requestAnimationFrame(render);
    14. }
    15. render();