three.js实现圆柱体


Posted in Javascript onDecember 30, 2018

本文实例为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 基础篇之对象、数组使用介绍(三)
Apr 07 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
最短的IE判断var ie=!-[1,]分析
May 28 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
JavaScript中document.referrer的用法详解
Jul 04 Javascript
浅谈Vuejs Prop基本用法
Aug 17 Javascript
前端把html表格生成为excel表格的实例
Sep 19 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 Javascript
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
three.js实现炫酷的全景3D重力感应
Dec 30 #Javascript
Three.js实现3D机房效果
Dec 30 #Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 #Javascript
three.js搭建室内场景教程
Dec 30 #Javascript
Three.JS实现三维场景
Dec 30 #Javascript
Three.js实现简单3D房间布局
Dec 30 #Javascript
JavaScript数组特性与实践应用深入详解
Dec 30 #Javascript
You might like
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python__new__内置静态方法使用解析
2020/01/07 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
求高于平均分的学生学号及成绩
2016/09/01 面试题
陈欧的广告词
2014/03/18 职场文书
普通话宣传标语
2014/06/26 职场文书
团代会邀请函
2015/02/02 职场文书
教师节主持词开场白
2015/05/29 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
Redis高可用集群redis-cluster详解
2022/03/20 Redis