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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
分享一些常用的jQuery动画事件和动画函数
Nov 27 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
Jan 13 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
May 07 Javascript
vue动态设置img的src路径实例
Sep 18 Javascript
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
微信小程序图片左右摆动效果详解
Jul 13 Javascript
JS立即执行的匿名函数用法分析
Nov 04 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 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自定义加密与解密程序实例
2014/12/31 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python实现基本线性数据结构
2016/08/22 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
维德科技C#面试题笔试题
2015/12/09 面试题
写给妈妈的道歉信
2014/01/11 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
教师理论学习心得体会
2016/01/21 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
Redis分布式锁Redlock的实现
2021/08/07 Redis