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 相关文章推荐
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
jQuery给动态添加的元素绑定事件的方法
Mar 09 Javascript
jquery实现定时自动轮播特效
Dec 10 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 Javascript
微信小程序之数据缓存的实例详解
Sep 29 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
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
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
js中split()方法得到的数组长度问题
2018/07/19 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
Django实现文件上传和下载功能
2019/10/06 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
python扫描线填充算法详解
2020/02/19 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
电信专业毕业生推荐信
2013/11/18 职场文书
军训生自我鉴定范文
2013/12/27 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书