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 语法基础 想学习js的朋友可以看看
Dec 16 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
jquery实现手风琴效果实例代码
Nov 15 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 Javascript
教你如何编写Vue.js的单元测试的方法
Oct 17 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
JS实现可切换图片的幻灯切换效果示例
May 24 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
vue实现图片上传功能
May 28 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
python 生成目录树及显示文件大小的代码
2009/07/23 Python
python中PIL安装简单教程
2016/04/21 Python
详解如何设置Python环境变量?
2019/05/13 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
kali中python版本的切换方法
2019/07/11 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Python通过文本和图片生成词云图
2020/05/21 Python
python 检测图片是否有马赛克
2020/12/01 Python
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
党章学习思想汇报
2014/01/14 职场文书
护士的自我鉴定
2014/02/07 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
教育见习报告范文
2014/11/03 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
python 闭包函数详细介绍
2022/04/19 Python