學習推薦
官網地址:https://threejs.org/;
推薦學習博客:http://www.yanhuangxueyuan.com/;
下載資源,獲取到three.js
入門代碼:
/* 創建場景對象Scene */
var scene = new THREE.Scene();
/* 光源設置 */
//點光源
var point = new THREE.PointLight(0xffffff);
point.position.set(400, 200, 300); //點光源位置
scene.add(point); //點光源添加到場景中
//環境光
var ambient = new THREE.AmbientLight(0x444444);
scene.add(ambient);
/* 相機設置 */
var width = window.innerWidth; //窗口寬度
var height = window.innerHeight; //窗口高度
var k = width / height; //窗口寬高比
var s = 200; //三維場景顯示範圍控制係數,係數越大,顯示的範圍越大
//創建相機對象
var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
camera.position.set(200, 300, 200); //設置相機位置
camera.lookAt(scene.position); //設置相機方向(指向的場景對象)
/* 創建渲染器對象 */
var renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height); //設置渲染區域尺寸
renderer.setClearColor(0xb9d3ff, 1); //設置背景顏色
document.body.appendChild(renderer.domElement); //body元素中插入canvas對象
// 添加模型
this.setBoxs(scene);
//執行渲染操作 指定場景、相機作爲參數
renderer.render(scene, camera);
};
setBoxs = scene => {
/* 創建網格模型 */
// var geometry = new THREE.SphereGeometry(60, 40, 40); //創建一個球體幾何對象
var geometry = new THREE.BoxGeometry(100, 100, 100); //創建一個立方體幾何對象Geometry
var material = new THREE.MeshLambertMaterial({
color: 0x0000ff
}); //材質對象Material
var mesh = new THREE.Mesh(geometry, material); //網格模型對象Mesh
scene.add(mesh); //網格模型添加到場景中
};
演示地址 :https://gf0uv.csb.app/
GridHelper 定義網格
function setGridPaper() {
var size = 200;
var divisions = 200;
var gridHelper = new THREE.GridHelper(size, divisions);
scene.add(gridHelper);
}
GridHelper(size:number,divisions:Number,colorCenterLine:Color,colorGrid:Color)
size-網格的大小。默認值爲10。
分區-網格中的分區數。默認值爲
10。colorCenterLine-中心線的顏色。這可以是Color,十六進制值和CSS-Color名稱。默認值爲0x444444
colorGrid-網格線的顏色。這可以是Color,十六進制值和CSS-Color名稱。默認值爲0x888888
定義 XYZ
var axes = new THREE.AxisHelper(200);
scene.add(axes);