three.js模板

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>three.js模板</title><style>body {margin: 0;overflow: hidden;/* 隐藏body窗口区域滚动条 */}</style><!--引入three.js三维引擎--><script src="../../js/three.js"></script><script src="../../js/OrbitControls.js"></script><!-- <script src="./three.js"></script> --></head><body>
<script type="text/javascript">var scene,camera,renderer,light,group;init();//开始初始化//将需要初始化的放在该方法中统一初始化function init(){initScene();//初始化场景initCamera();//初始化相机initRenender();//初始化渲染器initLight();//初始化光线initOthers();//初始化其他参数setWindown();//窗体的设置setEventsMouse();//鼠标事件的定义setKeyEvents();//定义键盘按键事件initaxisHelper();//辅助坐标Box();}//初始化场景function initScene(){scene = new THREE.Scene();//创建场景}//初始化相机function  initCamera(){//创建一个摄像机对象// camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight, 0.1, 1000);// camera.position.z=3;//设置相机的位置//创建相机对象camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 1000);camera.position.set(292, 109, 268);//设置相机位置camera.lookAt(scene.position); //设置相机方向(指向的场景对象)}//初始化渲染器function initRenender(){//创建渲染器renderer = new THREE.WebGLRenderer();renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色renderer.setSize(window.innerWidth, window.innerHeight);}//其他内容初始化function initOthers(){document.body.appendChild(renderer.domElement);//渲染到浏览器}function Box() {var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry//材质对象Materialvar material = new THREE.MeshLambertMaterial({color: 0x0000ff});var mesh = new THREE.Mesh(geometry, material); //网格模型对象Meshscene.add(mesh); //网格模型添加到场景中}//定义窗口的设置function setWindown(){//加入事件监听器,窗口自适应window.addEventListener('resize', function(){var width = window.innerWidth;var height = window.innerHeight;renderer.setSize(width,height);camera.aspect = width/height;camera.updateProjectionMatrix();});}//定义鼠标事件function setEventsMouse(){//点击了鼠标左键window.addEventListener( 'click', function(e){if(e.button===0){console.log("点击了鼠标左键");}} );//点击了鼠标右键window.addEventListener( 'contextmenu', function(e){if(e.button===2){console.log("点击了鼠标右键");}} );//鼠标移动坐标2D坐标window.addEventListener( 'mousemove', function(e){console.log('x:'+e.x);console.log('y:'+e.y);} );}//定义键盘按键事件function setKeyEvents(){window.addEventListener('keydown',function(e){console.log(e);});}function initaxisHelper() {//辅助三维坐标系AxisHelpervar axisHelper = new THREE.AxisHelper(250);scene.add(axisHelper);}//初始化光线function initLight(){//5.    光(Light)光源的基类。light = new THREE.Light(0xFFFFFF,1.0);scene.add(light);//光线加入场景中}//逻辑var update=function(){//物体随着XY轴旋转//cube.rotation.x +=0.01;//cube.rotation.y += 0.005;}// 渲染函数function render() {renderer.render(scene, camera); //执行渲染操作//requestAnimationFrame(render);//请求再次执行渲染函数render,渲染下一帧}//循环运行update,rendervar loop=function() {requestAnimationFrame(loop);//请求再次执行渲染函数render,渲染下一帧update();render();}loop();//循环开始
</script>
</body>
</html>

three.js模板相关推荐

  1. js模板引擎art template数组渲染的方法

    转载:js模板引擎art template数组渲染的方法 JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注,模板引擎种类也是五花八门,我就说几个安全性高.错误处理调 ...

  2. js模板引擎 之handlebars.js

    最近在接触郑州知识库,里面使用到的技术是值得自己学习的. 该项目前端使用的是handlebars.js模板引擎框架.模板引擎框架用于数据与结构分离的思想,实现页面动态分离的效果. 1.为什么使用模板引 ...

  3. 解决laytpl.js模板引擎插件加载模板后无法获取模板中的元素id等内容

    一.问题描述 在页面中使用laytpl.js模板引擎,在页面加载后无法使用jquery获取模板中的html元素,以下是图片和代码: 在添加或修改完毕后重新加载页面,不能使用jquery获取模板中的ht ...

  4. 四、Vue.js 模板语法

    本章概要 应用程序实例 插值 指令 Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将呈现的 DOM 绑定至底层组件实例的数据.所有的 Vue.js 模板都是有效的 HTML ,可以 ...

  5. JS模板引擎sychelTemplate

    sychelTemplate 简介 0.sychelTemplate希望创造一个用户觉得"简单好用"的JS模板引擎 注:等不及可以直接点左侧导航中的"C.使用举例&quo ...

  6. js模板引擎渐进--后记

    至此,算是完成了一个系列了. 本来是想写的更详细的,但是太详细每次说的东西就少的可怜. 在学习的过程中,每次的改进改动博主都是复制一个新的文件进行,整个有二十多篇,中间有很多小细节的东西,集中在 ea ...

  7. js模板引擎Nunjucks

    js模板引擎Nunjucks Nunjucks中文文档

  8. (js)模板字符串中使用循环遍历数据:

    (js)模板字符串中使用循环遍历数据: // 数据格式 let wordList = {id: "2",question: "李四",content: [{ n ...

  9. js模板引擎渐进--if/else(7)

    有了 each 的经验后,要实现 if/else 这种指令就简单了-------在  case '}' 处对 varcode 进行指令的判断即可. 模板代码: {if data.value==1}&l ...

最新文章

  1. spring-retry----线程内重试
  2. 关闭sublime更新提示
  3. 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
  4. 补码原理一个字节存储数值的范围如何计算
  5. Python中查找包含它的列表元素的索引,index报错!!!
  6. python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示
  7. cnn文本分类python实现_CNN文本分类
  8. deinstall oracle 11g on linux
  9. 吴裕雄 02-mysql PHP语法
  10. 【laravel5.4】使用baum\node 类库实现无限极分类
  11. (4.5.4)Android測试TestCase单元(Unit test)測试和instrumentationCase单元測试
  12. JavaScript Tree 功能强大,包含checkbox,自动选择子节点和父节点.
  13. 读书笔记 - 简约之美:软件设计之道
  14. mysql nutch_nutch2.2+mysql部署
  15. Windows | 管理员权限打开CMD 快捷键
  16. 微型计算机键盘ins代表,微型计算机技术69124.ppt
  17. 数字电路设计之低功耗设计方法六:旁路(by-passing)
  18. 2022年河北二级建造师建设工程施工管理《施工合同管理》练习及答案
  19. 常用的加密方式有哪些?
  20. CorelDRAW X3 金箔织绣材质特效——金箔绣球(1)

热门文章

  1. 工作小总结(字符串包含,获取当前页面的url等系列问题)
  2. 通过分区(Partition)提升MySQL性能
  3. Lumia 800 7.10.8783.12
  4. 昨晚调试一段PHP程序时遇到的三个问题
  5. Silverlight中调用ClientBin下非xap内的xml的方法
  6. 当程序发布特别慢的时候,如何高效使用Eclipse
  7. 问题的提出方式。(【先】说出最关键的【结果】,然后再描述细节)
  8. python中gensim内没有summarization的问题
  9. 【Spark】ip地址查询案例(城市热点图)
  10. 【Hive】Hive的数据类型