標簽:element sphere material doctype fun dde etc 定義 div
Three.js入門和搭建HelloWorld:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119149625
在上面已經能實現顯示坐標軸和球體的基礎上。
怎樣顯示立方體和平面。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
創建坐標軸對象并添加進場景
// 創建坐標軸對象 var axes = new THREE.AxisHelper(20); //將坐標軸添加進場景 scene.add(axes);
創建平面對象并設置平面繞X軸旋轉90度
// 創建平面,并定義平面的尺寸 var planeGeometry = new THREE.PlaneGeometry(60, 20); //創建一個基本材質,并設置顏色 var planeMaterial = new THREE.MeshBasicMaterial({color: 0xcccccc}); //把兩個對象合并到Mesh網格對象 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);
創建立方體并添加進場景
// 創建一個立方體 var cubeGeometry = new THREE.BoxGeometry(4, 4, 4); //設置材質 //把線框屬性wireframe設置為true var cubeMaterial = new THREE.MeshBasicMaterial({color: 0xff0000, wireframe: true}); //合并 var cube = new THREE.Mesh(cubeGeometry, cubeMaterial); // 設置立方體坐標 cube.position.x = 20; cube.position.y = 12; cube.position.z = 2; // 將立方體添加進場景 scene.add(cube);
創建球體并添加進場景
// 創建一個球體 var sphereGeometry = new THREE.SphereGeometry(4, 20, 20); //把線框屬性wireframe設置為true 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);
完整的實現代碼
<!DOCTYPE html> <html> <head> <title>第一個場景的使用</title> <script type="text/javascript" src="./js/three.js"></script> <style> body { /* 將邊距設置為0,溢出設置為隱藏,以實現全屏顯示 */ margin: 0; overflow: hidden; } </style> </head> <body> <!-- 顯示的div --> <div id="WebGL-output"> </div> <script type="text/javascript"> // 初始化的方法 function init() { // 創建一個場景,它將包含我們所有的元素,如物體,攝像機和燈光 var scene = new THREE.Scene(); // 創建一個相機,它定義了我們正在看的地方 var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000); // 創建渲染器并設置大小 var renderer = new THREE.WebGLRenderer(); //將renderer的背景色設置為接近白色 renderer.setClearColorHex(); renderer.setClearColor(new THREE.Color(0xEEEEEE)); //設置大小 renderer.setSize(window.innerWidth, window.innerHeight); // 創建坐標軸對象 var axes = new THREE.AxisHelper(20); //將坐標軸添加進場景 scene.add(axes); // 創建平面,并定義平面的尺寸 var planeGeometry = new THREE.PlaneGeometry(60, 20); //創建一個基本材質,并設置顏色 var planeMaterial = new THREE.MeshBasicMaterial({color: 0xcccccc}); //把兩個對象合并到Mesh網格對象 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); // 創建一個立方體 var cubeGeometry = new THREE.BoxGeometry(4, 4, 4); //設置材質 //把線框屬性wireframe設置為true var cubeMaterial = new THREE.MeshBasicMaterial({color: 0xff0000, wireframe: true}); //合并 var cube = new THREE.Mesh(cubeGeometry, cubeMaterial); // 設置立方體坐標 cube.position.x = 20; cube.position.y = 12; cube.position.z = 2; // 將立方體添加進場景 scene.add(cube); // 創建一個球體 var sphereGeometry = new THREE.SphereGeometry(4, 20, 20); //把線框屬性wireframe設置為true 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); // 定義相機的坐標,即懸掛在場景的上方 camera.position.x = -30; camera.position.y = 40; camera.position.z = 30; //為了確保相機能夠拍攝到這些物體,使用lookat函數指向場景的中心 camera.lookAt(scene.position); // 將renderer的輸出掛接到HTML終點div元素 document.getElementById("WebGL-output").appendChild(renderer.domElement); // 渲染場景 renderer.render(scene, camera); } window.onload = init; </script> </body> </html>
標簽:element sphere material doctype fun dde etc 定義 div
原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/15067417.html