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 相关文章推荐
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
Aug 14 Javascript
jquery队列函数用法实例
Dec 16 Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
WEB 前端开发中防治重复提交的实现方法
Oct 26 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
May 28 Javascript
Vue.js划分组件的方法
Oct 29 Javascript
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
Aug 27 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
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
解析php常用image图像函数集
2013/06/24 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
2020/11/18 Javascript
基于jquery实现的树形菜单效果代码
2015/09/06 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
详解Python网络爬虫功能的基本写法
2016/01/28 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
数据库连接池的工作原理
2012/09/26 面试题
傲盾软件面试题
2015/08/17 面试题
党员思想汇报范文
2013/12/30 职场文书
中等生评语大全
2014/05/04 职场文书
新党章心得体会
2014/09/04 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
2014年科协工作总结
2014/12/09 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
大学生求职自荐信范文
2015/03/04 职场文书