2019独角兽企业重金招聘Python工程师标准>>>

参考:threeJS开发指南

threeJs三个基本要素

1、scene:一个容器,保存并跟踪我们想渲染的物体

2、camera:定义在scene里能看到什么

3、rederer:计算指定camera角度下scene的样子--使用什么方式渲染(常见利用显卡渲染)

html:引入jQuery-1.9.0、threeJS

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加光源</title><style>body {margin: 0;overflow: hidden;}<style/>
</head>
<body>
<div id="WebGl-output"></div>
<script type="text/javascript" src="../../build/jquery-1.9.0.js"></script>
<script type="text/javascript" src="../../build/three.js"></script>
<script type="text/javascript" src="index.js"></script>
</body>
</html>

js:

1、要初始化三要素scene、camera、rederer

// 定义scene,camera,renderer
// scene是一个容器,保存并跟踪我们想渲染的物体
var scene = new THREE.Scene();
// 定义在scene里能看到什么
var camera = new THREE.PerspectiveCamera(45,window.innerWidth / window.innerHeight,0.1, 1000);
// 计算指定camera角度下scene的样子--使用显卡渲染
var renderer = new THREE.WebGLRenderer();
// 背景颜色
renderer.setClearColorHex(0xEEEEEE);
// 背景大小
renderer.setSize(window.innerWidth, window.innerHeight);

2、添加坐标轴

// 创建坐标轴
var axes = new THREE.AxisHelper(20);
scene.add(axes);

3、添加一个灰色的平面

// 创建平面
// 定义平面尺寸 -- 宽60,高20
var planeGeometry = new THREE.PlaneGeometry(60, 20);
// 颜色
var planeMaterial = new THREE.MeshBasicMaterial({color: 0xcccccc});
// 合并尺寸和颜色
var plane = new THREE.Mesh(planeGeometry, planeMaterial);
// 定义位置
// 绕着x轴旋转90度
plane.rotation.x = -0.5*Math.PI;
plane.position.x = 15;
plane.position.y = 0;
plane.position.z = 0;
scene.add(plane);

4、添加一个正方体

  // 创建方块var cubeGeometry = new THREE.CubeGeometry(4, 4, 4);var cubeMaterial = new THREE.MeshBasicMaterial({color: 0xff0000,wireframe: true});var cube = new THREE.Mesh(cubeGeometry, cubeMaterial);cube.position.x = -4;cube.position.y = 3;cube.position.z = 0;scene.add(cube);

5、添加一个球体

  // 创建球体var sphereGeometry = new THREE.SphereGeometry(4, 20, 20);var sphereMaterial = new THREE.MeshBasicMaterial({color: 0x7777ff,wireframe: true});var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial);sphere.position.x = 20;sphere.position.y = 4;sphere.position.z = 2;scene.add(sphere);

6、指定相机的位置和悬挂的角度

  // 指定相机的位置,将其悬挂在场景上方camera.position.x = -30;camera.position.y = 40;camera.position.z = 30;// 指向场景中心camera.lookAt(scene.position);

7、讲scene和camera挂载到html

  // 挂载到html上$("#WebGl-output").append(renderer.domElement);renderer.render(scene, camera);

结果如图

转载于:https://my.oschina.net/u/3589012/blog/3050284

学习threeJS(一)--第一个threeJs相关推荐

  1. HTML+ThreeJS从零开始搭建一个展示三维模型展示网站 【0】

    ps 最近在做三维建模相关的工作,每次展示三维模型都需要用blende或者其他软件录制视频或图片特别不方便所以想用threejs html做一个三维模型展示的网页,本次制作只会涉及到简单的前端知识,本 ...

  2. 【ThreeJS基础教程-初识Threejs】1.6各种各样的几何体

    各种各样的几何体 学习ThreeJS的捷径 常用内置几何体介绍 立方缓冲几何体BoxGeometry 分段数的意义(该部分仅建议了解即可,无需深入) 圆形缓冲几何体CircleGeometry 圆柱缓 ...

  3. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  4. C#多线程学习(二) 如何操纵一个线程

    C#多线程学习(二) 如何操纵一个线程 原文链接:http://kb.cnblogs.com/page/42529/ [1] C#多线程学习(二) 如何操纵一个线程 [2] C#多线程学习(二) 如何 ...

  5. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

  6. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  7. 我的学习工作经历,一个园林专业中专毕业生的IT之路

    魏琼东,男,1983年生人,祖籍甘肃陇南人,首先得感谢我父亲给我取了这么一个好名字,至少我非常喜欢他,因为目前还没有发现和我同名的人. 我是1998-2002年在甘肃林业学校读了四年的园林专业,那四年 ...

  8. Spring学习笔记:第一个Spring Boot程序HelloWorld

    Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...

  9. C#.NET学习笔记2---C#.第一个C#程序

    C#.NET学习笔记2---C#.第一个C#程序 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:__________以前的网站现在不弄了,抱歉 6.第一个 ...

最新文章

  1. 函数指针amp;绑定: boost::functoin/std::function/bind
  2. 过直线上一点画垂线图_苏教版四年级数学上册8.5认识垂直、点到直线的距离微课视频 | 练习...
  3. ubuntu20.04运行愤怒的小鸟
  4. Linux静默安装oracle
  5. 栈溢出利用-----jmp esp
  6. (Docker实战) 第5篇:Centos7 拉取和部署搭建 NEXUS私服
  7. 一般程序句柄多少linux,一个进程能够打开最大文件句柄数设到多大才合适(Linux)...
  8. 长期没有工作是什么感觉?
  9. python爬虫总结之xpath元素定位
  10. html微博换头像,手机新浪微博头像怎么设置 手机新浪微博更换头像教程
  11. java控制台通讯录
  12. 带本科生做毕设是什么样的体验,看看学生是怎么评价我的
  13. 全长扩增子:是时候展示真正的技术了
  14. 【矩阵计算】QR分解-基于Householder变换
  15. 在线问诊小程序|互联网医院系统好处有哪些?
  16. 【期末复习】操作系统
  17. 利用Python实现摄像头实时换脸
  18. 衡量两个向量相似度的方法:余弦相似度
  19. python_split()函数使用方法
  20. KaTex数学公式笔记

热门文章

  1. Notes on language modeling-COMS W4705: Natural Language Processing-学习笔记
  2. Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站
  3. nodeJS的管道流和链式流
  4. 注册/找回密码等功能中发送手机验证码后倒计时效果的实现(基于vue)
  5. angular6允许局域网可访问
  6. 安卓使用ImageView显示OpenCV-Mat
  7. VS2013(Win10X64)-配置编译Caffe
  8. Angular之组件的创建
  9. 回溯法求解N皇后问题(Java实现)
  10. excel表格在保存时出现“隐私问题警告提示”