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 相关文章推荐
asp.net+jquery滚动滚动条加载数据的下拉控件
Jun 25 Javascript
浅析用prototype定义自己的方法
Nov 14 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
JavaScript两种跨域技术全面介绍
Apr 16 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
js获取指定字符前/后的字符串简单实例
Oct 27 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
es6中使用map简化复杂条件判断操作实例详解
Feb 19 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&amp;&amp;mysql)三
2006/10/09 PHP
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
javascript中onclick(this)用法介绍
2013/04/19 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
javascript实现弹幕墙效果
2019/11/28 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python操作CouchDB数据库简单示例
2015/03/10 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
python与php实现分割文件代码
2017/03/06 Python
单链表反转python实现代码示例
2018/02/08 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Django缓存系统实现过程解析
2019/08/02 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
敬老模范事迹
2014/05/21 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
结对共建工作方案
2014/06/02 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
报案材料怎么写
2015/05/25 职场文书
活动宣传稿范文
2015/07/23 职场文书