3.1 基本几何形状

圆柱体(CylinderGeometry)

构造函数:

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

radiusTop:顶面的半径;

radiusBottom:底面的半径;

height:是圆柱体的高度;

radiusSegments:两底面的分段切片;

heightSegments:侧面的分段切片;

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

标准圆柱体

例如,new THREE.CylinderGeometry(2, 2, 4, 20, 20, false),将创建一个上下底面半径为2,高度为4,其各面的切片为20,有底面。
 

一点说明:

由于圆柱体的参数特性,我们可以想,其实可以组合出很多其他的图形

例如:

圆台

例如,new THREE.CylinderGeometry(2, 3, 4, 18, 3),将创建一个上底面半径为2,下地面半径为3,高度为4,底面的分段切片为18,侧面为3。

圆锥

例如,new THREE.CylinderGeometry(0, 3, 6, 18, 3, false)

棱锥

等等.....

一个标准圆柱体的代码示例demo以及效果图

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script type="text/javascript" src="./three.js"></script>
<title>Document</title>
</head> <body onload="init()">
<!-- 页面加载触发init()初始化函数, -->
<script>
function init() {
//渲染器
var renderer = new THREE.WebGLRenderer();
renderer.setSize(800, 600);
document.getElementsByTagName('body')[0].appendChild(renderer.domElement); renderer.setClearColor(0x00000);
//场景
var scene = new THREE.Scene();
var aspect = window.innerWidth / window.innerHeight;
//相机
var camera = new THREE.OrthographicCamera(-4 * aspect, 4 * aspect, -3 * aspect, 3 * aspect, 1, 500);
camera.position.set(0, 0, 200);
camera.lookAt(new THREE.Vector3(0, 0, 0));
scene.add(camera); var circle = new THREE.Mesh(new THREE.CircleGeometry(3, 50, Math.PI, Math.PI / 3 * 4),
new THREE.MeshBasicMaterial({
color: 0xff0000,
wireframe: true
})
)
scene.add(circle)
//触发渲染
renderer.render(scene, camera);
}
</script>
</body> </html>

  

最新文章

  1. 用VLC Media Player搭建简单的流媒体服务器
  2. js常用函数
  3. python数据结构与算法——链表
  4. Android软件开发需要学什么
  5. 【译】 AWK教程指南 2概述
  6. Java获取的一天、本星期、这个月、本季度、一年等 开始和结束时间
  7. Java IO面试
  8. Educational Codeforces Round 56 (Rated for Div. 2) D
  9. Java的参数传递是「按值传递」还是「按引用传递」?
  10. 一些LinuxC的小知识点(一)
  11. API权限控制与安全管理
  12. mybatis之 # 与 $ 区别以及 sql 预编译
  13. 借助LVS+Keepalived实现负载均衡
  14. Linux系统CentOS6.2版本下安装JDK7详细过程
  15. js offset
  16. javascriptDOM编程
  17. BGP选路原则
  18. 我的ubuntu14.04配置
  19. Java中的增强for循环
  20. Three.js基础:建立Cube并实现鼠标交互,动画旋转

热门文章

  1. ajax的post提交 序列化json参数
  2. Apache Tomcat 文件包含漏洞(CVE-2020-1938)
  3. 在 centos6 上安装 LAMP
  4. MySQL 统计行数的 count
  5. vue-router需要注意的点
  6. html5 cavans的小应用
  7. js 图片实现无缝滚动
  8. this.current = params.page || 1 (前提是params对象一定要存在)
  9. JMeter报错:Address already in use : connect
  10. 在ASP.NET MVC中如何预防Cookie的窃取攻击(转载)