3.1 基本几何形状

球体(SphereGeometry)

构造函数:

THREE.SphereGeometry(radius, segmentsWidth, segmentsHeight, phiStart, phiLength, thetaStart, thetaLength)

radius:是半径;

segmentsWidth:经度上的切片数,相当于经度被切成了几瓣;

segmentsHeight:纬度上的切片数,相当于纬度被切成了几层;

phiStart:经度开始的弧度;

phiLength:经度跨过的弧度;

thetaStart:纬度开始的弧度;

thetaLength:纬度跨过的弧度。

分段

在图形底层的实现中,并没有曲线的概念,曲线都是由多个折线近似构成的。当折线越多,越近乎曲线。切片数决定了,图形的“精细度”

经度分段(切片demo)

维度分段(切片demo)

缺省值说明

phiStart、phiLength、thetaStart、thetaLength 这四个值是缺省值,即可以省略,而省略的时候实际有默认值,将画出一个完整的球体。通过不同的值修改,可以实现各种,不完整球体、球面。

例如:

THREE.SphereGeometry(2, 50, 50, Math.PI / 2, Math.PI)

(1/4 个球面)

球体的完整示例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()">
<canvas id="mainCanvas" width="800px" height="600px"></canvas>
</body>
<script>
function init() {
var renderer = new THREE.WebGLRenderer({
canvas: document.getElementById('mainCanvas')
});
renderer.setClearColor(0x000000);
var scene = new THREE.Scene();
var aspect = window.innerWidth / window.innerHeight;
var camera = new THREE.OrthographicCamera(-2 * aspect, 2 * aspect, -1.5 * aspect, 1.5 * aspect, 1, 500);
camera.position.set(200, 200, 200);
scene.add(camera);
camera.lookAt(new THREE.Vector3(0, 0, 0));
var cube = new THREE.Mesh(new THREE.SphereGeometry(2, 50, 50),
new THREE.MeshBasicMaterial({
color: 0xff0000,
wireframe: true
})
)
scene.add(cube);
renderer.render(scene, camera); }
</script> </html>

  

最新文章

  1. python , angular js 学习记录【1】
  2. XVI Open Cup named after E.V. Pankratiev. GP of Eurasia
  3. 『TCP/IP详解——卷一:协议』读书笔记——09
  4. 3月20,html
  5. angularJS中controller的通信
  6. 使用rosed编辑ROS文件
  7. windows实用技巧
  8. [Guava官方文档翻译] 1.Guava简介 (Introduction)
  9. linux —— shell 编程(文本处理)
  10. XTU 1245 Hamiltonian Path
  11. 【BZOJ2004】公交线路(动态规划,状态压缩,矩阵快速幂)
  12. JVM Class字节码之三-使用BCEL改变类属性
  13. SSM-Spring-19:Spring中JdbcTemplate
  14. JS变量类型与计算
  15. sqlserver可将字符转成数字再进行sum,如果varchar类型中存放的都是数字
  16. HDU 6433(2的n次方 **)
  17. 面试题 -AR VR MR以及CR的简单介绍
  18. [LeetCode&amp;Python] Problem 563. Binary Tree Tilt
  19. python中的split、rsplit、splitlines
  20. Eclipse的使用与Oblect类的常用方法_DAY11

热门文章

  1. 手写Promise原理
  2. 结题报告--P2441角色属性树
  3. Oracle 11.2 RAC on Redhat 6.5 安装最佳实践
  4. Django中ORM中的get与filter区别
  5. C++ 理解类 和 类中的public、protected、private
  6. Asp.Net Core 中IdentityServer4 授权原理及刷新Token的应用
  7. javaScript 基础知识汇总 (十五)
  8. echarts legend文字配置多个颜色(转)
  9. 附014.Kubernetes Prometheus+Grafana+EFK+Kibana+Glusterfs整合性方案
  10. Git 的简单使用及ssh配置问题-赖大大