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 相关文章推荐
js简单实现点击左右运动的方法
Apr 10 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
Dec 03 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
Oct 24 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
javascript简单链式调用案例分析
May 10 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
JavaScript中this关键字用法实例分析
Aug 24 Javascript
jQuery实现弹幕特效
Nov 29 jQuery
html-webpack-plugin修改页面的title的方法
Jun 18 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 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
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
详解js闭包
2014/09/02 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
python使用pygame框架实现推箱子游戏
2018/11/20 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
python自动化发送邮件实例讲解
2021/01/04 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
PHP高级工程师面试问题推荐
2013/01/18 面试题
关于迟到的检讨书
2014/01/26 职场文书
交通事故检查书范文
2014/01/30 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
化学专业自荐信
2014/05/28 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
拾金不昧表扬信
2015/01/16 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js
MySQL主从切换的超详细步骤
2022/06/28 MySQL
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技