当前位置: 首页 > 编程笔记 >

three.js实现圆柱体

松成和
2023-03-14
本文向大家介绍three.js实现圆柱体,包括了three.js实现圆柱体的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了three.js绘制圆柱体的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>圆柱体</title>
  <style>
    #canvas{
      width:1100px;
      height:600px;
      border:1px solid;
    }
  </style>
  <script type="text/javascript" src="js/three.js"></script>
  <script>
//    渲染器
    var renderer;
    function init_renderer(){
      width = document.getElementById("canvas").clientWidth;
      height = document.getElementById("canvas").clientHeight;
      renderer = new THREE.WebGLRenderer({  //生成渲染对象
        antialias : true  //去锯齿
      });
      renderer.setSize(width,height);//设置渲染的宽度和高度;
      document.getElementById("canvas").appendChild(renderer.domElement);
      renderer.setClearColor(0xEEEEEE,1);//设置渲染的颜色;
    }
//    场景
    var scene;
    function init_scene(){
      scene = new THREE.Scene();
    }
//   圆柱体
var cylinder;
function init_cylinder(){
var cylinder = new THREE.CylinderGeometry(80,50,300,50,50);
var texture = THREE.ImageUtils.loadTexture("textures/2.jpg",null,function(t)//图片地址可使用本地,同根目录下文件夹即可
    {
    });
var material = new THREE.MeshLambertMaterial({map:texture});  //材料
cube = new THREE.Mesh(cylinder,material);
cube.position.set(0,0,5);   //设置几何体的位置(x,y,z)
      scene.add(cube);
}

//    相机
    var camera;
    function init_camera(){
//     camera = new THREE.PerspectiveCamera(100,width/height,1,10000);  //透视相机
camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000) //正投影相机
      // (可视角度,可视范围的长宽比,相对于深度剪切面的近的距离 必须为正数,相对于深度剪切面的远的距离 必须为正数)
      camera.position.x =600
      camera.position.y = 100;
      camera.position.z = 100;


      camera.up.x = -2;//设置相机的上为「x」轴方向
      camera.up.y = 2;//设置相机的上为「y」轴方向
      camera.up.z = 0;//设置相机的上为「z」轴方向
      camera.lookAt({x:0,y:0,z:0}); //设置视野的中心坐标
    }
//    光源
    var light;
    function init_light(){
      light = new THREE.DirectionalLight(0xffffff,1);//设置平行光源 (光颜色,光强度)
      light.position.set(200,100,50);//设置光源向量 (x,y,z)
      scene.add(light);
    }


    function ThreeJs_Main(){
      init_renderer();//渲染
      init_scene();//场景
      init_cylinder();//圆柱体
      init_camera();//相机
      init_light();//光源
      renderer.clear();
      animation()
      renderer.render(scene,camera);
    }
    function animation(){

 //x,y,z为旋转的轴 后边数字为速度

//      cube.rotation.x += 0.01;

 cube.rotation.y += 0.01;

//     cube.rotation.z += 0.01;
     renderer.render(scene,camera);
        requestAnimationFrame(animation);
      }
  </script>
</head>
<body onload="ThreeJs_Main()">
  <div id="canvas"></div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 一个点的cylindrical coordinates(圆柱坐标)。 构造器(Constructor) Cylindrical( radius : Float, theta : Float, y : Float ) radius - 从原点到x-z平面上一点的距离 默认值为 1.0. theta - 在x-z平面内的逆时针角度,以z轴正方向的计算弧度。默认值为0。 y - x-z平面以上的高度 默

  • 对于三维点云,有没有一种算法可以找到半径最小的圆柱体?我知道2D最小包围圆的情况是可以解决的(例如Python中的线程最小包围圆,代码错误),但对于3D有什么工作方法吗? 编辑1:OBB。下面是一个圆弧状点云的例子。这个工具可以找到最小的封闭圈https://www.nayuki.io/page/smallest-enclosing-circle 圆是由三个点定义的,其中两个点几乎位于一个直径上,

  • 一个用于生成圆柱几何体的类。// iOS iframe auto-resize workaround if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) { const scene = document.getElementById( 'scene' ); scene.style.width = getComputedStyle( sc

  • 本文向大家介绍Three.JS实现三维场景,包括了Three.JS实现三维场景的使用技巧和注意事项,需要的朋友参考一下 最近在看一些Web3D的内容,觉得如果用纯openGLes写一个简单的3D场景太难了;不过还好,有很多现成的库可以使用。 (个人感觉):我知道的经常的是Three.JS和SceneJS。感觉Three.JS资料比较多,貌似好学一些吧;另一个是ScenenJS,感觉官方介绍比较好,

  • 本文向大家介绍python绘制圆柱体的方法,包括了python绘制圆柱体的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python绘制圆柱体示的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 不能重复,因为我在问pandas。 我有一些带有数字的列。我跑 那成功地截断了长的小数点,而不是正确地写了:,但是我仍然得到 或带有尾随零。 跑完大熊猫后,如何摆脱所有列中的尾随零 ? 我想将数据帧另存为csv,并且需要数据来显示我希望的方式。 问题答案: df = df.round(decimals=6).astype(object) 转换为将允许混合表示。但是,请记住,从性能角度来