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 禁止复制网页
Jun 11 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
jQuery数据显示插件整合实现代码
Oct 24 Javascript
基于jquery ajax 用户无刷新登录方法详解
Apr 28 Javascript
JS实现QQ图片一闪一闪的效果小例子
Jul 31 Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 Javascript
简介alert()与console.log()的不同
Aug 26 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
Aug 02 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
Apr 08 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
Aug 24 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
AngularJS实现全选反选功能
2015/12/08 Javascript
easyui validatebox验证
2016/04/29 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
vue编写简单的购物车功能
2021/01/08 Vue.js
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
毕业生个人求职自荐信
2014/02/26 职场文书
目标责任书格式范文
2015/05/11 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
解决Redis启动警告问题
2022/02/24 Redis