three.js添加几何体与坐标系
代码
<!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>
逻辑
- 按照展示的逻辑,想要添加多个集合体我们只需要创建多个集合体便可
- 然后把这几个几何体放在场景中便可,对应代码如下
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添加几何体与坐标系相关推荐
- three.js使用OrbitControls.js控制几何体旋转、平移、缩放
附带一个可用的OrbitControls.js http://www.yanhuangxueyuan.com/threejs/examples/js/controls/OrbitControls.js ...
- 使用Threejs创建几何体,动态添加几何体,删除几何体,添加坐标轴
1,介绍 该示例使用的是 r95版本Three.js库.将创建一个场景并添加几何体,动态添加几何体,删除几何体,获取场景所有对象,添加坐标轴.效果图如下: 引入文件: three.js // thr ...
- threejs 形状几何体_Three.js模型几何体面积、体积计算
Three.js模型几何体面积.体积计算 在工作中通过Three.js开发项目的时候,一些特定的情况下你可能需要计算一个三维模型的表面积或者体积,比如在3D打印的Web项目中,你需要计算一个三维模型的 ...
- js 添加内容实现列表功能
js 添加 使用的是appendChild(node) - 插入新的子节点(元素) 来实现 当然也可以删除 使用appendChild(node) - 插入新的子节点(元素) 效果图 代码如下 < ...
- 获取js里添加的css文件,用JS添加一个css文件
我在这里发现了一些关于我的问题的问题,但我无法使用它. 通过JS点击它们时我会改变的CSS属性,JQuery的用JS添加一个css文件 Green Red /*$(document).ready(fu ...
- 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 ...
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 转载...
js添加事件.移除事件.阻止冒泡.阻止浏览器默认行为等写法(兼容IE/FF/CHROME) 网上有关这方面的代码比较多而乱,这里整理一下并加以改进. 添加事件 01 var addEvent = ...
- js读取cookie,js添加cookie,js删除cookie
2019独角兽企业重金招聘Python工程师标准>>> js读取cookie,js添加cookie,js删除cookie,示例如下: <!DOCTYPE HTML PUBLIC ...
- Fabric.js添加辅助线的方法
Fabric.js高级点的教程1–添加辅助线的方法 Fabric.js添加辅助线的方法 Fabric.js 非常的强大,但是国内的资源教程很少,最近想加个功能给元素添加辅助参考线(类似 演示 ).这样 ...
最新文章
- 【BZOJ2140】稳定婚姻 Tarjan
- 【ACM】LightOJ - 1010 Knights in Chessboard(不是搜索...)
- 学会扶墙的机器人:没有什么能让我倒下!
- 九、序列参数集Sequence Paramater Set(SPS)解析
- python编程基础语法-Python编程入门基础语法详解
- Flask之DButils
- vue-cli安装、node-sass安装、mintUI组件库安装
- spring boot实战(第十篇)Spring boot Bean加载源码分析
- yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件
- 在 Linux 中使用动态磁盘
- Egret中使用P2物理引擎
- centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十七) —— HTML5 离线缓存
- C++之关于初始化列表(Initialization List)的一个补充示例
- ubuntu 18.04忘记登录密码的破解方法
- iOS底层探索之KVO(一)—KVO简介
- 信息化与计算机基础课课堂融合,高等学校计算机基础课程多元教学系列教材:网页设计与制作...
- 如何将通讯录批量转换为vcf格式导入手机,苹果手机如何批量删除通讯录?
- 外贸小公司如何做谷歌SEO优化
- 关于工作后定居城市的思考以及房价预测(天涯原创)
热门文章
- BasicAnimation:纯Swift的基础动画库,支持 iOS 属性动画:缩放、旋转、平移、背景颜色、透明度、阴影等和弹性动画
- 小程序开发实践总结 - WEB前端
- 电脑与服务器直连网线怎么接,用网线把笔记本电脑和单独的服务器连接起来 ip怎样设置...
- 如何 在adobe reader中 截取 画面 清晰的图片 图表 截图(原来画面不清楚,模糊 最为明显) pdf 。word
- python爬取csdn上的包含整人关键词的阅读量并且存入表格里。完整代码
- Nirvana Studio
- 计算机网络安全评估的过程,基于BP 神经网络的计算机网络安全评估
- aText for Mac(打字加速器)
- 基于STM32的自平衡小车DIY
- 线性电源与开关电源的比较