当前位置:   article > 正文

threejs顶点——1、顶点位置解析_three r150

three r150
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>顶点位置数据解析渲染</title>
  6. <style>
  7. body {
  8. margin: 0;
  9. overflow: hidden;
  10. /* 隐藏body窗口区域滚动条 */
  11. }
  12. </style>
  13. <!--引入three.js三维引擎-->
  14. <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>
  15. <!-- 引入threejs扩展控件OrbitControls.js -->
  16. <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/examples/js/controls/OrbitControls.js"></script>
  17. </head>
  18. <body>
  19. <script>
  20. /**
  21. * 创建场景对象Scene
  22. */
  23. var scene = new THREE.Scene();
  24. /**
  25. * 创建网格模型
  26. */
  27. var geometry = new THREE.BufferGeometry(); //创建一个Buffer类型几何体对象
  28. //类型数组创建顶点数据
  29. var vertices = new Float32Array([
  30. 0, 0, 0, //顶点1坐标
  31. 50, 0, 0, //顶点2坐标
  32. 0, 100, 0, //顶点3坐标
  33. 0, 0, 10, //顶点4坐标
  34. 0, 0, 100, //顶点5坐标
  35. 50, 0, 10, //顶点6坐标
  36. ]);
  37. // 创建属性缓冲区对象
  38. var attribue = new THREE.BufferAttribute(vertices, 3); //3个为一组,表示一个顶点的xyz坐标
  39. // 设置几何体attributes属性的位置属性
  40. geometry.attributes.position = attribue;
  41. // 三角面(网格)渲染模式
  42. var material = new THREE.MeshBasicMaterial({
  43. color: 0x0000ff, //三角面颜色
  44. side: THREE.DoubleSide //两面可见
  45. }); //材质对象
  46. var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
  47. scene.add(mesh); //网格模型添加到场景中
  48. // 点渲染模式
  49. // var material = new THREE.PointsMaterial({
  50. // color: 0xff0000,
  51. // size: 5.0 //点对象像素尺寸
  52. // }); //材质对象
  53. // var points = new THREE.Points(geometry, material); //点模型对象
  54. // scene.add(points); //点对象添加到场景中
  55. // 线条渲染模式
  56. // var material=new THREE.LineBasicMaterial({
  57. // color:0xff0000 //线条颜色
  58. // });//材质对象
  59. // var line=new THREE.Line(geometry,material);//线条模型对象
  60. // scene.add(line);//线条对象添加到场景中
  61. // 辅助坐标系 老版本AxisHelper 新版本AxesHelper
  62. var axisHelper = new THREE.AxisHelper(250);
  63. scene.add(axisHelper);
  64. /**
  65. * 光源设置
  66. */
  67. //点光源
  68. // var point = new THREE.PointLight(0xffffff);
  69. // point.position.set(400, 200, 300); //点光源位置
  70. // scene.add(point); //点光源添加到场景中
  71. // //环境光
  72. // var ambient = new THREE.AmbientLight(0x444444);
  73. // scene.add(ambient);
  74. /**
  75. * 相机设置
  76. */
  77. var width = window.innerWidth; //窗口宽度
  78. var height = window.innerHeight; //窗口高度
  79. var k = width / height; //窗口宽高比
  80. var s = 150; //三维场景显示范围控制系数,系数越大,显示的范围越大
  81. //创建相机对象
  82. var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
  83. camera.position.set(200, 300, 200); //设置相机位置
  84. camera.lookAt(scene.position); //设置相机方向(指向的场景对象)
  85. /**
  86. * 创建渲染器对象
  87. */
  88. var renderer = new THREE.WebGLRenderer();
  89. renderer.setSize(width, height); //设置渲染区域尺寸
  90. renderer.setClearColor(0xb9d3ff, 1); //设置背景颜色
  91. document.body.appendChild(renderer.domElement); //body元素中插入canvas对象
  92. // 渲染函数
  93. function render() {
  94. renderer.render(scene, camera); //执行渲染操作
  95. }
  96. render();
  97. //创建控件对象 相机对象camera作为参数 控件可以监听鼠标的变化,改变相机对象的属性
  98. var controls = new THREE.OrbitControls(camera,renderer.domElement);
  99. //监听鼠标事件,触发渲染函数,更新canvas画布渲染效果
  100. controls.addEventListener('change', render);
  101. </script>
  102. </body>
  103. </html>

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号