嗨大家好,今天是铁人赛的第 27 天,也是本系列 Three.js 最後一篇罗,照惯例,最後一天我们要来利用前面所学技术制作小功能。那麽废话不多说,就让我们开始吧!
这边有个小提醒,若你是使用 codepen 即时渲染画面等线上编辑器,记得把 three.js 引入,然後在 Behavior 内关闭即时渲染程序画面的功能,以免爆掉喔~
function init() {}
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight);
document.body.appendChild( renderer.domElement );
var shape = [];
geometry = new THREE.IcosahedronGeometry(2.5,0);
material = new THREE.MeshNormalMaterial();
shape[0] = new THREE.Mesh( geometry, material );
shape[1] = new THREE.Mesh( geometry, material );
shape[2] = new THREE.Mesh( geometry, material );
shape[0].position.set(0,5,0);
shape[1].position.set(0,5,0);
shape[2].position.set(0,5,0);
scene.add(shape[0],shape[1],shape[2]);
var light = new THREE.PointLight(0xfca4c5);
light.position.set(250,0,0);
scene.add(light);
camera.position.set(3,4,10);
renderer.render(scene, camera);
requestAnimationFrame
运作动画,接着针对我们上面绘制的三个多面体物件去透过 旋转矩阵 来调整旋转角度。
function render() {
requestAnimationFrame( render );
shape[0].rotation.x += 0.035;
shape[0].rotation.y -= 0.005;
shape[1].rotation.y += 0.015;
shape[1].rotation.z -= 0.005;
shape[2].rotation.z -= 0.025;
shape[2].rotation.x += 0.005;
renderer.render(scene, camera);
}
render();
init();
再次赐予我力量吧 雅典娜!天马回旋碎击拳!
呼~ Three.js 系列就到这边结束啦~
其实如果能把 Three.js 提供的一些内建语法熟悉熟悉,就会发现跟原生 Canvas 等写法相比真的轻松非~常多!
因此如果有兴趣的话都可以上官网看看呦!
当然一样的如果有其他做出来超厉害动画,也都欢迎跟我分享交流讨论喔!
那麽我们明天见!ㄅㄅ!
>>: Android x Kotlin : 展开式列表ExpandableListView用法
接下来我们要利用「 PWM」与「RGB LED」设计调色盘功能。 首先来认识一下新朋友 - 「RGB...
移除元素 如果要从切片中移除元素,下面是一个比较简单粗暴的写法 slice := []int{1, ...
前序求值 程序说明 相关函式 get_value():计算并回报结果 说明: 将引入的两个运算元与运...
关於如何写 App 的 description,我目前有两个小技巧可以分享: 关键字优化 用Deep...
ORM (Object Relational Mapping) 是目前在做资料库应用程序中,用来定义...