代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>第一个three.js文件_WebGL三维场景</title><style>body {margin: 0;overflow: hidden;/* 隐藏body窗口区域滚动条 */}</style><!--引入three.js三维引擎--><script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script><script src="http://www.yanhuangxueyuan.com/threejs/examples/js/controls/OrbitControls.js"></script>
</head><body><script>/*** 创建场景对象Scene*/var scene = new THREE.Scene();/*** 创建网格模型*/// var geometry = new THREE.SphereGeometry(60, 40, 40); //创建一个球体几何对象var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry(长、宽、高)var material = new THREE.MeshLambertMaterial({color: 0x0000ff}); //材质对象Materialvar mesh = new THREE.Mesh(geometry, material); //网格模型对象Meshscene.add(mesh); //网格模型添加到场景中// 立方体网格模型var geometry1 = new THREE.BoxGeometry(100, 100, 100);var material1 = new THREE.MeshLambertMaterial({color: 0x0000ff}); //材质对象Materialvar mesh1 = new THREE.Mesh(geometry1, material1); //网格模型对象Meshscene.add(mesh1); //网格模型添加到场景中// 球体网格模型var geometry2 = new THREE.SphereGeometry(60, 40, 40);var material2 = new THREE.MeshLambertMaterial({color: 0xff00ff});var mesh2 = new THREE.Mesh(geometry2, material2); //网格模型对象Meshmesh2.translateY(120); //球体网格模型沿Y轴正方向平移120scene.add(mesh2);// 圆柱网格模型var geometry3 = new THREE.CylinderGeometry(50, 50, 100, 25);var material3 = new THREE.MeshLambertMaterial({color: 0xffff00});var mesh3 = new THREE.Mesh(geometry3, material3); //网格模型对象Mesh// mesh3.translateX(120); //球体网格模型沿Y轴正方向平移120mesh3.position.set(120, 0, 0);//设置mesh3模型对象的xyz坐标为120,0,0scene.add(mesh3); ///*** 光源设置*///点光源var point = new THREE.PointLight(0xffffff); // 参数为光照强度point.position.set(400, 200, 300); //点光源位置scene.add(point); //点光源添加到场景中//环境光var ambient = new THREE.AmbientLight(0x444444);scene.add(ambient);// console.log(scene)// console.log(scene.children)/*** 相机设置*/var width = window.innerWidth; //窗口宽度var height = window.innerHeight; //窗口高度var k = width / height; //窗口宽高比var s = 200; //三维场景显示范围控制系数,系数越大,显示的范围越大//创建相机对象var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);camera.position.set(200, 300, 200); //设置相机位置camera.lookAt(scene.position); //设置相机方向(指向的场景对象)/*** 创建渲染器对象*/var renderer = new THREE.WebGLRenderer();renderer.setSize(width, height);//设置渲染区域尺寸renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色document.body.appendChild(renderer.domElement); //body元素中插入canvas对象// 渲染函数function render() {renderer.render(scene, camera);//执行渲染操作}render();var controls = new THREE.OrbitControls(camera, renderer.domElement);//创建控件对象controls.addEventListener('change', render);//监听鼠标、键盘事件</script>
</body></html>

逻辑

  1. 按照展示的逻辑,想要添加多个集合体我们只需要创建多个集合体便可
  2. 然后把这几个几何体放在场景中便可,对应代码如下
 var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry(长、宽、高)var material = new THREE.MeshLambertMaterial({color: 0x0000ff}); //材质对象Materialvar mesh = new THREE.Mesh(geometry, material); //网格模型对象Meshscene.add(mesh); //网格模型添加到场景中// 立方体网格模型var geometry1 = new THREE.BoxGeometry(100, 100, 100);var material1 = new THREE.MeshLambertMaterial({color: 0x0000ff}); //材质对象Materialvar mesh1 = new THREE.Mesh(geometry1, material1); //网格模型对象Meshscene.add(mesh1); //网格模型添加到场景中// 球体网格模型var geometry2 = new THREE.SphereGeometry(60, 40, 40);var material2 = new THREE.MeshLambertMaterial({color: 0xff00ff});var mesh2 = new THREE.Mesh(geometry2, material2); //网格模型对象Meshmesh2.translateY(120); //球体网格模型沿Y轴正方向平移120scene.add(mesh2);// 圆柱网格模型var geometry3 = new THREE.CylinderGeometry(50, 50, 100, 25);var material3 = new THREE.MeshLambertMaterial({color: 0xffff00});var mesh3 = new THREE.Mesh(geometry3, material3); //网格模型对象Mesh// mesh3.translateX(120); //球体网格模型沿Y轴正方向平移120mesh3.position.set(120, 0, 0);//设置mesh3模型对象的xyz坐标为120,0,0scene.add(mesh3); //

坐标系

如果想要展示出坐标系如下

// 辅助坐标系  参数250表示坐标系大小,可以根据场景大小去设置
var axisHelper = new THREE.AxisHelper(250);
scene.add(axisHelper);

three.js添加几何体与坐标系相关推荐

  1. three.js使用OrbitControls.js控制几何体旋转、平移、缩放

    附带一个可用的OrbitControls.js http://www.yanhuangxueyuan.com/threejs/examples/js/controls/OrbitControls.js ...

  2. 使用Threejs创建几何体,动态添加几何体,删除几何体,添加坐标轴

    1,介绍 该示例使用的是 r95版本Three.js库.将创建一个场景并添加几何体,动态添加几何体,删除几何体,获取场景所有对象,添加坐标轴.效果图如下: 引入文件: three.js  // thr ...

  3. threejs 形状几何体_Three.js模型几何体面积、体积计算

    Three.js模型几何体面积.体积计算 在工作中通过Three.js开发项目的时候,一些特定的情况下你可能需要计算一个三维模型的表面积或者体积,比如在3D打印的Web项目中,你需要计算一个三维模型的 ...

  4. js 添加内容实现列表功能

    js 添加 使用的是appendChild(node) - 插入新的子节点(元素) 来实现 当然也可以删除 使用appendChild(node) - 插入新的子节点(元素) 效果图 代码如下 < ...

  5. 获取js里添加的css文件,用JS添加一个css文件

    我在这里发现了一些关于我的问题的问题,但我无法使用它. 通过JS点击它们时我会改变的CSS属性,JQuery的用JS添加一个css文件 Green Red /*$(document).ready(fu ...

  6. react js 添加样式_如何在React JS Application中添加图像?

    react js 添加样式 Hello! In this article, we will learn how to add images in React JS? I remember when I ...

  7. js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 转载...

    js添加事件.移除事件.阻止冒泡.阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 网上有关这方面的代码比较多而乱,这里整理一下并加以改进. 添加事件 01    var addEvent = ...

  8. js读取cookie,js添加cookie,js删除cookie

    2019独角兽企业重金招聘Python工程师标准>>> js读取cookie,js添加cookie,js删除cookie,示例如下: <!DOCTYPE HTML PUBLIC ...

  9. Fabric.js添加辅助线的方法

    Fabric.js高级点的教程1–添加辅助线的方法 Fabric.js添加辅助线的方法 Fabric.js 非常的强大,但是国内的资源教程很少,最近想加个功能给元素添加辅助参考线(类似 演示 ).这样 ...

最新文章

  1. 【BZOJ2140】稳定婚姻 Tarjan
  2. 【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)
  3. 学会扶墙的机器人:没有什么能让我倒下!
  4. 九、序列参数集Sequence Paramater Set(SPS)解析
  5. python编程基础语法-Python编程入门基础语法详解
  6. Flask之DButils
  7. vue-cli安装、node-sass安装、mintUI组件库安装
  8. spring boot实战(第十篇)Spring boot Bean加载源码分析
  9. yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件
  10. 在 Linux 中使用动态磁盘
  11. Egret中使用P2物理引擎
  12. centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...
  13. 使用 jQuery Mobile 与 HTML5 开发 Web App (十七) —— HTML5 离线缓存
  14. C++之关于初始化列表(Initialization List)的一个补充示例
  15. ubuntu 18.04忘记登录密码的破解方法
  16. iOS底层探索之KVO(一)—KVO简介
  17. 信息化与计算机基础课课堂融合,高等学校计算机基础课程多元教学系列教材:网页设计与制作...
  18. 如何将通讯录批量转换为vcf格式导入手机,苹果手机如何批量删除通讯录?
  19. 外贸小公司如何做谷歌SEO优化
  20. 关于工作后定居城市的思考以及房价预测(天涯原创)

热门文章

  1. BasicAnimation:纯Swift的基础动画库,支持 iOS 属性动画:缩放、旋转、平移、背景颜色、透明度、阴影等和弹性动画
  2. 小程序开发实践总结 - WEB前端
  3. 电脑与服务器直连网线怎么接,用网线把笔记本电脑和单独的服务器连接起来 ip怎样设置...
  4. 如何 在adobe reader中 截取 画面 清晰的图片 图表 截图(原来画面不清楚,模糊 最为明显) pdf 。word
  5. python爬取csdn上的包含整人关键词的阅读量并且存入表格里。完整代码
  6. Nirvana Studio
  7. 计算机网络安全评估的过程,基于BP 神经网络的计算机网络安全评估
  8. aText for Mac(打字加速器)
  9. 基于STM32的自平衡小车DIY
  10. 线性电源与开关电源的比较