Three.js入门学习笔记00:坐标系,照相机(暂时理解)

学习正交照相机遇到一些问题没理解透彻,在这里整理一下暂时的理解,以后再修正,小白一个,有错误欢迎指正。

一.坐标系

世界坐标系为右手坐标系,X正向向右,Y轴正向向上,Z轴正向由屏幕内伸向屏幕外。
在这里插入图片描述
在这里插入图片描述

围绕轴旋转

拇指指向旋转轴的正方向,四指弯曲的方向为旋转的正方向

cube.rotaion.y -= 0.01; //弧度
本地坐标

物体的坐标,在物体中心点。

可添加辅助坐标轴

var axisHelper = new THREE.AxisHelper(4);
axisHelper.rotation.y -=0.01;//坐标轴旋转
scene.add(axisHelper)

蓝:z轴
红:x轴
绿:y轴

二.相机所在位置

相机默认在坐标系原点,看向Z轴负半轴
camera.postion:相机所在的位置,默认为(0,0,0)
camera.lookAt:相机焦点方向,默认为Z轴负半轴方向

将相机聚焦在某个点上

camera.lookAt(new THREE.Vector3(x,y,z))

相机追踪某个物体

camera.lookAt(mesh.position)

正交
六个参数分别代表正交投影照相机拍摄到的六个面的位置。
其中,near表示近平面与相机中心点的垂直距离;far表示远平面与相机中心点的垂直距离。
在这里插入图片描述
透视
在这里插入图片描述

三.位置关系

<script type="text/javascript">
    //renderer
        var renderer = new THREE.WebGLRenderer();
            renderer.setSize(400, 300);
            canvas,不用再定义canvas元素
            document.getElementsByTagName("body")[0].appendChild(renderer.domElement);
            
    
    //scene
        var scene = new THREE.Scene();
    
    //camera
        var camera = new THREE.OrthographicCamera(-2, 2, 1.5, -1.5, 1, 10);
            camera.position.set(0, 0, 5);
            scene.add(camera);
    
    //cube
        var cube = new THREE.Mesh(new THREE.CubeGeometry(1, 1, 1),
            new THREE.MeshBasicMaterial({
                color: 0xff0000,
                wireframe:true      
            })                                                
    );
    scene.add(cube);
    
    //render
    //renderer.render(scene, camera);
    function animate(){
        cube.rotation.x += 0.01;
        cube.rotation.y += 0.01;
        renderer.render( scene, camera);
        requestAnimationFrame( animate );
    }
        animate();
    
</script>

以上代码我理解的位置关系,不知对不对
蓝色数字为长度,黑色数字为坐标
在这里插入图片描述

实例
camera.position.set(0,0,100)//set(x,y,z)
camera.lookAt(new THREE.Vector3(0, 0, 0));

var cube = new THREE.Mesh(geometry, material);
cube.position.set(0, 0, -100);

相机位于Z轴正方向上,相机默认在原点,看向Z轴负向。
因此,cube坐标在z轴负向,可以被相机看见,
如果设置cube.position.set(0, 0, 200);
则看不到物体。

可通过camera.position.z与cube.position.z改变看到的物体大小

参考内容:
照相机理解
https://blog.csdn.net/qq_42206266/article/details/80566992

坐标轴
https://blog.csdn.net/weixin_33910385/article/details/88853253
https://blog.csdn.net/cvchihzhza/article/details/80141344
https://blog.csdn.net/qq_42206266/article/details/80566992
相机
https://blog.csdn.net/a13602955218/article/details/85222815
three.js 相机camera属性解析
https://www.jianshu.com/p/cacd4a035b85
视角
https://www.iteye.com/blog/fqg05-1947139
点线面
https://yq.aliyun.com/articles/687186
透视照相机
https://www.cnblogs.com/xulei1992/p/5709677.html
相机与物体的位置
https://blog.csdn.net/tjj3027/article/details/81976661

https://www.jianshu.com/p/f6e881df611e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值