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中的isXX系列是否继续使用的分析
Apr 16 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
JQuery的$命名冲突详细解析
Dec 28 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
Aug 11 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
Mar 27 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
跨域解决之JSONP和CORS的详细介绍
Nov 21 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 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 $_SERVER当前完整url的写法
2009/11/12 PHP
Destoon模板制作简明教程
2014/06/20 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
谈谈JS中的!!
2017/12/07 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
小程序实现多列选择器
2019/02/15 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
理解python中生成器用法
2017/12/20 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
一个精品风格的世界:Atterley
2019/05/01 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
无犯罪记录证明
2014/09/19 职场文书
自荐信模板大全
2015/03/27 职场文书
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang