threejs学习笔记01

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>333</title>
    <style>
        html, body {
            margin: 0;
            padding: 0;
        }
        #three_canvas {
            position: absolute;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <canvas id="three_canvas"></canvas>

    <script src="js/three.js"></script>
    <script>
        //定义一些需要的变量
        var renderer, camera, scene, light, object;
        var width, height;
        //初始化
        function initRenderer(){
            width=document.getElementById(‘three_canvas‘).clientWidth;
            height=document.getElementById(‘three_canvas‘).clientHeight;
            renderer=new THREE.WebGLRenderer({
                //将canvas绑定到renderer
                canvas:document.getElementById(‘three_canvas‘)
            });
            renderer.setSize(width,height);//将渲染的大小设为canvas相同
            renderer.setClearColor(0xFFFFFF, 1.0);//设置默认颜色与透明度
        };
        //初始化场景
        function initScene(){
            scene = new THREE.Scene();
        };
        //初始化相机
        function initCamera(){
            //简单的正交投影相机,正对着视口中心,视口大小与canvas大小相同
            camera = new THREE.OrthographicCamera(width/-2,width/2,height/2,height/-2,1,1000);
            //设置相机的位置
            camera.position.x=0;
            camera.position.y=0;
            camera.position.z=200;
            //设置相机的上方向
            camera.up.x=0;
            camera.up.y=1;
            camera.up.z=0;
            //设置相机聚焦的位置(其实就是确定一个方向)
            camera.lookAt({
                x:0,
                y:0,
                z:0
            })
        };
        //该添加一个立方体到场景中了
        function initObject(){
            //创建一个边长为100的立方体
            var geometry = new THREE.CubeGeometry(100,100,100);
            object = new THREE.Mesh(geometry,new THREE.MeshNormalMaterial());
            //法向材质MeshNormalMaterial这样立方体每个面的颜色与这个面对着的方向是相关的,更便于观察/调试。
            //在这个简单的demo里我不打算添加光影效果,而法向材质对光也是没有反应的。
            scene.add(object);
        }
        //最后要动起来,创建一个动画循环
        function render(){
            // requestAnimFrame,它会自动在每次页面重绘前调用传入的函数。
            requestAnimationFrame(render);
            object.rotation.x +=0.05;
            object.rotation.y +=0.05;
            renderer.render(scene,camera);
        }
        //调用
        function threeStart(){
            initRenderer();
            initCamera();
            initScene();
            initObject();
            render();
        };
        window.onload=threeStart();
    </script>
</body>
</html>

  

时间: 2024-11-12 22:38:47

threejs学习笔记01的相关文章

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

HTTP 学习笔记01

HTTP   hypertext transfer protocol (超文本传输协议) TCP/IP 协议集中的一个应用层协议 用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式 HTTP 1.0  会话方式 HTTP 1.1 方式 HTTP 请求消息结构 一个请求行,若干消息头,以及实体内容 其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开. GET   方式下是没有实体内容的 POST .PUT.DELETE 方式下请求消息才可以包含实体内容 HT

SWIFT学习笔记01

1.Swift,用来判断option是不是nil,相当于OC的 if(option) if let name = option{ greeting = "if=====" }else{ greeting = "else===" } 2.运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break. 3.//使用..创建的范围不包含上界,如果想包含的话需要使用...,集合上,就是[)与[]的关系 for i

C++ GUI Qt4学习笔记01

C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概念:一个是“信号和槽”,另一个是“布局”. 窗口部件(widget)是用户界面的一个可视化元素,相当于windows系统中的“控件”和“容器”.任意窗口部件都可以用作窗口. 1.1Hello Qt 正确安装Qt4开发环境,创建工程目录hello,源代码文件名为hello.cpp,进入hello目录 (1

HTML学习笔记01

HTML学习笔记 HTML学习笔记01 一.HTML的定义 1 HTML就是"HyperText Markup Language","超文本标记语言".2 HTML不是<color="red">编程语言,而是一种标记语言.3 标记语言是一套标记标签.4 HTML使用标记标签来描述网页. 二.HTML标签 1 HTML标签是由尖括号包围的关键词.2 HTML标签通常是成对出现的.3 标签对中的第一个标签是开始标签,第二个标签是结束标签.

MVC4 学习笔记01

1 . ASP.NET MVC 中 ActionResult 和 ViewResult 在使用上的区别是什么?要注意什么吗? ActionResult 是一个抽象(abstract)类,ViewResult 只是ActionResult 的一个实现(implementation).如果你确认你返回的是一个视图(view),你可以直接返回类型为ViewResult.ActionResult 有很多的派生类,如果你很确定你要返回的类型,你可以明确的返回该类型.如果你并不是很清楚,或者你根本不想去理解

python学习笔记(01):python和c语言 标识符命名规则比较

python标识符命名规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识符名称的其他部分可以由字母(大写或小写).下划线(‘ _ ’)或数字(0-9)组成.标识符名称是对大小写敏感的.例如,myname和myName不是一个标识符.注意前者中的小写n和后者中的大写N.有效 标识符名称的例子有i.__my_name.name_23和a1b2_c3.无效 标识符名称的例子有2things.this is spaced out和my-name. c语言标识符命

C++学习笔记——01

最近准备跳槽的事情,于是把C++翻出来看,顺便做了一些练习,主要是数据结构方面的,就贴在这里做个系列,权当督促自己了. 第一天,写了一个栈,调试了下没什么问题,内存泄露的问题也解决了. 1 #ifndef STACK_H 2 #define STACK_H 3 4 #include "stdlib.h" 5 #include "iostream" 6 7 class Stack 8 { 9 private: 10 typedef int NODE_DATA_TYPE

DirectX10学习笔记&lt;01&gt; 搭建环境-在Visual Studio中配置DirectX

一.工具下载 IDE:Visual Studio 2008 SDK:DirectX SDK,可以从Microsoft的网站上免费下载到.SDK中还包含示例.工具和文档.自带的工具很有用,我们会经常使用其中的DDS纹理工具. 二.设置Visual Studio 2008 菜单栏->Tools->Options... 左边选择Projects and Solutions->VC++ Directories 右边Show directiories for:选择Include files,往下列