three.js新手入门教程( 二 )
为了保持照相机的横竖比例 , 需要保证(right-left)与(top-bottom)的比例与Canvas宽度与高度的比例一致 。
varcamera=newTHREE.OrthographicCamera(-2,2,1.5,-1.5,1,100);
camera.position.set(0,0,5);scene.add(camera);
其中 , 第二句是设定照相机的位置 。 照相机默认都是沿z轴负方向观察的 , 可以通过lookAt函数指定它看着其他方向:
camera.lookAt(newTHREE.Vector3(0,0,0));
这样就改变照相机观察方向由当前位置指向原点 。 注意 , lookAt函数接受的是一个THREE.Vector3的实例 。
透视投影相机
透视投影是更符合人眼视觉的投影 , 构造函数是:
PerspectiveCamera(fov,aspect,near,far)

文章图片
fov:为视角的大小,如果设置为0,相当你闭上眼睛了,所以什么也看不到,如果为180,那么可以认为你的视界很广阔,但是在180度的时候 , 往往物体很小 , 因为他在你的整个可视区域中的比例变小了 。
aspect:为实际窗口的纵横比 , 即宽度除以高度 。 通常设为Canvas的横纵比例 。
varcamera=newTHREE.PerspectiveCamera(45,400/300,1,100);
camera.position.set(0,0,5);scene.add(camera);
形状
threejs封装了一些常见的几何形状 , 在使用时 , 就只需要定义threejs设定好需要的值即可 , 如果想要自定义形状 , 就需要手动创造顶点和面 。
立方体
THREE.CubeGeometry(width,height,depth,widthSegments,heightSegments,depthSegments)
这里 , width是x方向上的长度;height是y方向上的长度;depth是z方向上的长度;后三个参数分别是在三个方向上的分段数 , 如widthSegments为3的话 , 代表x方向上水平分为三份 。 一般情况下不需要分段的话 , 可以不设置后三个参数 , 后三个参数的默认值为1 。
如:newTHREE.CubeGeometry(1,2,3);可以创建一个x方向长度为1 , y方向长度为2 , z方向长度为3的立方体 。

文章图片
物体的几何中心默认在原点的位置 。 若设置了分段 , 会对六个面进行分段 , 而不是对立方体分段 , 因此在立方体的中间是不分段的 , 只有六个侧面被分段 。
平面
THREE.PlaneGeometry(width,height,widthSegments,heightSegments)
width是x方向上的长度;height是y方向上的长度;后两个参数同样表示分段 。
球体
THREE.SphereGeometry(radius,segmentsWidth,segmentsHeight,phiStart,phiLength,thetaStart,thetaLength)
其中 , radius是半径;segmentsWidth表示经度上的切片数;segmentsHeight表示纬度上的切片数;phiStart表示经度开始的弧度;phiLength表示经度跨过的弧度;thetaStart表示纬度开始的弧度;thetaLength表示纬度跨过的弧度 。
使用varsphere=newTHREE.SphereGeometry(3,8,6)可以创建一个半径为3 , 经度划分成8份 , 纬度划分成6份的球体 , 如下图所示:

文章图片
segmentsWidth相当于经度被切成了几瓣 , 而segmentsHeight相当于纬度被切成了几层 。 对于球
体而言 , 当这两个值较大的时候 , 形成的多面体就可以近似看做是球体了 。
圆形
THREE.CircleGeometry(radius,segments,thetaStart,thetaLength)
这四个参数和球体中的是类似的 。
柱体
THREE.CylinderGeometry(radiusTop,radiusBottom,height,radiusSegments,heightSegments,openEnded)
其中 , radiusTop与radiusBottom分别是顶面和底面的半径 , 由此可知 , 当这两个参数设置为不同的值时 , 实际上创建的是一个圆台;height是圆柱体的高度;radiusSegments与heightSegments可类比球体中的分段;openEnded是一个布尔值 , 表示是否没有顶面和底面 , 默认为false , 表示有顶面和底面 。
- 电脑录屏软件哪个好用,新手上手就会
- 手机是人们生活中不可缺少的通讯和娱乐工具|教你怎么查看新手机的首次激活时间
- 每当换手机的时候|qq聊天记录怎么迁移到新手机上?
- 创业|新手做电商卖什么好?避开人人满意陷阱,聚焦核心客户群体!
- 富士x|东南亚跨境电商有哪些平台?新手小白适合哪个跨境电商
- 磨金石教育分享丨新手插画ps怎么临摹?新手绘制ps插画需要注意什么?
- 电子商务|东南亚跨境电商有哪些平台?新手小白适合哪个跨境电商
- 自媒体|『原创』做自媒体第一步!教你新手如何养号?
- iPhone|新手买iphone,给你这四个建议
- 消费券|不知道抖音小店无货源玩法?新手小白看过来
