除了

1.圆形

CircleGeometry可以创建圆形或者扇形:

THREE.CircleGeometry(radius, segments, thetaStart, thetaLength)

radius:半径

segmentsWidth:经度上的分段数

segmentsHeight:纬度上的分段数

thetaStart:纬度开始的弧度

thetaLength:纬度跨过的弧度

new THREE.CircleGeometry(3, 18, Math.PI / 3, Math.PI / 3 * 4) 创建一个在x轴和y轴所在平面的三分之二圆的扇形:

2.圆柱体

圆柱体(CylinderGeometry)的构造函数是:

THREE.CylinderGeometry(radiusTop,radiusBottom,height,radiusSegments, heightSegments, openEnded)

radiusTop:顶面半径

radiusBottom:底面的半径

height:圆柱体的高度

radiusSegments:顶面与底面的分段数

heightSegments:侧面的分段数

openEnded:是否没有顶面和底面,布尔类型,缺省值为false,表示有顶面和底面。

当radiusTop和radiusBottom设置为相同的值时,创建的是一个标准圆柱体:

new THREE.CylinderGeometry(2, 2, 4, 18, 3)创建一个顶面与底面半径都为2,高度为4的圆柱体:

当radiusTop和radiusBottom设置为不同的值时,创建的是一个圆台。new THREE.CylinderGeometry(2, 3, 4, 18, 3)将底面半径设为3:

openEnded设置为true时创建一个没有顶面与底面的圆台,new THREE.CylinderGeometry(2, 3, 4, 18, 3, true)的效果:

3.正四面体,正八面体,正二十面体

正四面体(TetrahedronGeometry)、正八面体(OctahedronGeometry)、正二十面体(IcosahedronGeometry)的构造函数较为类似,分别为:

THREE.TetrahedronGeometry(radius, detail)

THREE.OctahedronGeometry(radius, detail)

THREE.IcosahedronGeometry(radius, detail)

其中,radius是半径;detail是细节层次(Level of Detail)的层数,对于大面片数模型,可以控制在视角靠近物体时,显示面片数多的精细模型,而在离物体较远时,显示面片数较少的粗略模型。这里我们不对detail多作展开,一般可以对这个值缺省。

new THREE.TetrahedronGeometry(3)创建一个半径为3的正四面体:

new THREE.OctahedronGeometry(3)创建一个半径为3的正八面体:

乍一看有点像光能使者的魔法阵哈,用三维的眼光去看。

new THREE.IcosahedronGeometry(3)创建一个半径为3的正二十面体:

4.圆环面

圆环面(TorusGeometry)的形状类似甜甜圈,其构造函数是:

THREE.TorusGeometry(radius, tube, radialSegments, tubularSegments, arc)

radius:圆环半径

tube:管道半径

radialSegments:径向的分段数

tubularSegments:管的分段数,详见下图

arc:圆环面的弧度,缺省值为Math.PI * 2

new THREE.TorusGeometry(3, 1, 4, 8)创建一个粗糙的圆环面:

new THREE.TorusGeometry(3, 1, 12, 18)创建一个较为精细的圆环面:

这个就很像甜甜圈了。

new THREE.TorusGeometry(3, 1, 4, 8, Math.PI / 3 * 2)创建部分圆环面:

5.圆环结

圆环结(TorusKnotGeometry)的构造参数为:

THREE.TorusKnotGeometry(radius,tube,radialSegments,tubularSegments, p, q, heightScale)

radius:圆环半径

tube:管道半径

radialSegments:径向的分段数

tubularSegments:管的分段数

p:p\Q:对knot(节)状方式有效,控制曲线路径缠绕的圈数,其中p决定垂直方向的参数(可缺省)

q:水平方向的参数(可缺省)

heightScale:z轴方向上的缩放,默认值1

new THREE.TorusKnotGeometry(2, 0.5, 32, 8)的效果:

关于圆环结的详细内容可参看

6.源码

1

2

3

4

5

3.js测试五

6

7

8

9

10

11

12 functioninit() {13 varrenderer= newTHREE.WebGLRenderer({14 canvas: document.getElementById('mainCanvas')15 });16 renderer.setClearColor(0x000000);17 varscene= newTHREE.Scene();18

19 //camera

20 varcamera= newTHREE.OrthographicCamera(-5,5,3.75,-3.75,0.1,100);21 camera.position.set(25,25,25);22 camera.lookAt(newTHREE.Vector3(0,0,0));23 scene.add(camera);24

25 varmaterial= newTHREE.MeshBasicMaterial({26 color:0xffff00,27 wireframe:true

28 });29

30 drawCircle(scene, material);//圆形

31 //drawCylinder(scene, material); //圆柱体

32 //drawTetra(scene, material); //正四面体

33 //drawOcta(scene, material); //正八面体

34 //drawIcosa(scene, material); //正二十面体

35 //drawTorus(scene, material); //圆环面

36 //drawTorusKnot(scene, material); //圆环结

37

38 //render

39 renderer.render(scene, camera);40 }41

42 functiondrawCircle(scene, material) {43 varcircle= newTHREE.Mesh(newTHREE.CircleGeometry(3,18, Math.PI/ 3, Math.PI/ 3 * 4), material);44 scene.add(circle);45 }46

47 functiondrawCylinder(scene, material) {48 //var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(2, 2, 4, 18, 3), material);

49 //var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(2, 3, 4, 18, 3), material);

50 varcylinder= newTHREE.Mesh(newTHREE.CylinderGeometry(2,3,4,18,3,true), material);51 scene.add(cylinder);52 }53

54 functiondrawTetra(scene, material) {55 vartetra= newTHREE.Mesh(newTHREE.TetrahedronGeometry(3), material);56 scene.add(tetra);57 }58

59 functiondrawOcta(scene, material) {60 varocta= newTHREE.Mesh(newTHREE.OctahedronGeometry(3), material);61 scene.add(octa);62 }63

64 functiondrawIcosa(scene, material) {65 varicosa= newTHREE.Mesh(newTHREE.IcosahedronGeometry(3), material);66 scene.add(icosa);67 }68

69 functiondrawTorus(scene, material) {70 //var torus = new THREE.Mesh(new THREE.TorusGeometry(3, 1, 12, 18), material);

71 vartorus= newTHREE.Mesh(newTHREE.TorusGeometry(3,1,4,8, Math.PI/ 3 * 2), material);72 scene.add(torus);73 }74

75 functiondrawTorusKnot(scene, material) {76 vartorus= newTHREE.Mesh(newTHREE.TorusKnotGeometry(2,0.5,32,8), material);77 scene.add(torus);78 }79

80

81

threejs 三面体_Three.js基础探寻五——正二十面体、圆环面等相关推荐

  1. threejs 绘制球体_Three.js基础探寻四——立方体、平面与球体

    前面简单介绍了 1.立方体 虽然这一形状的名字叫立方体(CubeGeometry),但它其实是长方体,也就是长宽高可以设置为不同的值.其构造函数是: THREE.CubeGeometry(width, ...

  2. threejs 三面体_three.js初探,立体几何入手(一)

    前言:首先先推荐一篇博客,关于webgl原理,讲的非常之通俗易懂了 图解WebGL&Three.js工作原理  webGL可以理解为openGL ES2.0 (webGL2.0 - openG ...

  3. threejs 三面体_Three.js 自定义了一个几何体

    几何体本质: 立方体几何体BoxGeometry本质上就是一系列的顶点构成,只是Threejs的APIBoxGeometry把顶点的生成细节封装了,用户可以直接使用. 比如一个立方体网格模型,有6个面 ...

  4. Three.js基础探寻二——正交投影照相机

    本篇主要介绍照相机中的正交投影照相机. 第一篇传送门:Three.js基础探寻一 1.照相机 图形学中的照相机定义了三维空间到二维屏幕的投影方式. 针对投影方式照相机分为正交投影照相机和透视投影照相机 ...

  5. Three.js基础探寻七——Lamber材质与Phong材质

    材质(Material)是独立于物体顶点信息之外的与渲染效果相关的属性.通过设置材质可以改变物体的颜色.纹理贴图.光照模式等. 本篇将介绍基本材质以及两种基于光照模型的材质(Lamber与Phong) ...

  6. (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】

    JS基础知识二(原型和原型链) 提问 class 继承 类型判断(instanceof) 原型 原型关系 基于原型的执行规则 原型链 说明 提问 如何准确判断一个变量是不是数组 class的原型本质 ...

  7. JS基础知识学习(一)

    JS基础知识 前端开发常用的浏览器 谷歌浏览器(chrome):Webkit内核(v8引擎) 火狐浏览器(firefox):Gecko内核 欧朋浏览器(opera):Presto内核 IE浏览器:Tr ...

  8. 前端面试题目汇总摘录(JS 基础篇 —— 2018.11.01更新)

    温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...

  9. JS基础--函数与BOM、DOM操作、JS中的事件以及内置对象

       前   言 絮叨絮叨 这里是JS基础知识集中讲解的第三篇,也是最后一篇,三篇JS的基础,大多是知识的罗列,并没有涉及更难得东西,干货满满!看完这一篇后,相信许多正在像我一样正处于初级阶段的同学, ...

  10. 前端面试题目汇总摘录(JS 基础篇)

    温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...

最新文章

  1. 多样化实现Windows phone 7本地数据访问5——深入Rapid Repository
  2. spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?
  3. Flutter - International 国际化,Localization 本地化, 使用Intl
  4. 【Android个人理解(八)】跨应用调用不同组件的方法
  5. 230. Kth Smallest Element in a BST
  6. 前端学习(2848):鼠标点击事件
  7. gojs实现最短路径寻址实例
  8. jquery手写轮播图_jquery 实现轮播图详解及实例代码_jquery_脚本之家
  9. python编程狮电脑版_w3cschool编程狮PC版-编程狮电脑版下载 v3.3.10--PC6电脑版
  10. VMware虚拟机安装CentOS6.4、部署web项目全过程(设置固定IP、安装JDK、Tomcat、Redis、部署项目)...
  11. Android开发案例源码解析之使用sqlite数据库记录并读取GPS信息
  12. 华为S2000系列交换机电源维修
  13. Mat 转 IplImage
  14. MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名
  15. Java入门第116课——向List中插入和删除元素
  16. 单片机晶振概述及工作原理
  17. html图片合成视频,将视频和图片合成到一个页面
  18. 数字图像处理MATLAB大作业:基础版
  19. sklearn 笔记:高斯过程
  20. 5月青龙面板JD脚本库

热门文章

  1. 交通信号灯规范国家标准出台
  2. php项目权限系统设计
  3. Xshell实现命令快速输入
  4. 基于vue.js 编写的简单的文件管理器的demo
  5. 海康存储硬盘盒开箱+小螃蟹RTL9210固件更新+量产软件下载
  6. Windows下 使用Python 3 调用讯飞 TTS 引擎实现文本转语音
  7. dnf服务器炸团门票怎么找回,DNF:打团掉线被献祭点这里免费补门票,再也不怕被献祭没牌了...
  8. modbus主机、从机、虚拟串口调试软件
  9. HCSE5.0中文胶片
  10. SolidWorks学习(1):基础绘图