美文网首页
看Three.js example--Apple的学习笔记

看Three.js example--Apple的学习笔记

作者: applecai | 来源:发表于2020-05-06 11:39 被阅读0次

Three.js的css3d_sprites.html的example效果吸引了我,所以我要学习下。
里面有2个关键点,一个是Tween.js导致的动画效果,另外一个是创建点的位置。1个是random,1个是cube,1个是波浪。这都好理解。但是球体中的theta和phi的关系我还不理解,修改theta和phi的映射关系后,发现图形中螺旋线的数量变少,离散程度变少。var theta = Math.sqrt( particlesTotal * Math.PI ) * phi; 的依据是什么,留着将来看到相关资料再解决。

phi的是按照弧度来设置每个点的角度。查球坐标系相关资料也可以知道。


image.png
                // Sphere

                var radius = 750;

                for ( var i = 0; i < particlesTotal; i ++ ) {

                    var phi = Math.acos( - 1 + ( 2 * i ) / particlesTotal );
                    var theta = Math.sqrt( particlesTotal * Math.PI ) * phi;  

                    positions.push(
                        radius * Math.cos( theta ) * Math.sin( phi ),
                        radius * Math.sin( theta ) * Math.sin( phi ),
                        radius * Math.cos( phi )
                    );

                }

cube说明x轴/y轴/z轴分为8等分。particlesTotal为512。其实888=512个。separation可以理解为步长。就是指2个object的间隔距离。
x = i%amount这样就限制了x轴范围为0-7。
y = ( i / amount ) % amount这样说明x在0-7的时候,它一直保持0,当8-15的时候它为1,依次类推。那么说明是按x轴先排列,排到满后,在沿着y轴排列。
再看看
z=i / ( amount * amount )% amount。说明第一个xy面8*8=64个排列完成后,开始排z轴,z轴方向加1。

                // Cube

                var amount = 8;
                var separation = 150;
                var offset = ( ( amount - 1 ) * separation ) / 2;  //525

                for ( var i = 0; i < particlesTotal; i ++ ) {

                    var x = ( i % amount ) * separation;
                    var y = Math.floor( ( i / amount ) % amount ) * separation;
                    var z = Math.floor( i / ( amount * amount ) ) * separation;

                    positions.push( x - offset, y - offset, z - offset );

                }

相关文章

  • 看Three.js example--Apple的学习笔记

    Three.js的css3d_sprites.html的example效果吸引了我,所以我要学习下。里面有2个关键...

  • 3D世界

    前言最近在学习three.js,以下是我的笔记。 相关概念了解 1.WebGL与Three.js 1.1什么是We...

  • 书架选书Tween补间动画应用--Apple的学习笔记

    Three.js模拟书架选书显示书名--Apple的学习笔记我说过,学习example后,会进行些美化改造。之前做...

  • 使用Three.js+requestAnimationFrame

    前言 最近几天事情很多,学校在教育评估,不能在宿舍待着,因此笔记也就没做了。但对于Three.js的学习还算不错,...

  • three.js学习资料整理

    最近在学three.js,特地整理偶然间碰到的学习资料分享给大家,国内除了大公司,专门学习three.js的太少了...

  • three.js学习笔记(一)

    1、OrthographicCamera 正交投影照相机 2、PerspectiveCamera 透视投影照相机 ...

  • three.js 基础学习笔记

    threeJs 是用来方便快捷创建 3D 视图的库,内部对 WebGL 的接口进行了封装。使得编写代码的过程更加贴...

  • three.js 光与影学习笔记

    越来越感觉和绘画密切相关了,无论是光、影还是体积,都是绘画过程中追求的东西。 光源种类 环境光 先看一张图片 左边...

  • Three.JS 学习笔记——简介

    一、前言 Three.js (github) 是一个纯 JavaScript 实现的 3D 渲染库,其在前端 3D...

  • Three.js学习笔记(1)

    前言 由于近期的一些业务需要用到一些webgl的东西,three.js可以说是webgl相关库里最完善的,所以毫无...

网友评论

      本文标题:看Three.js example--Apple的学习笔记

      本文链接:https://www.haomeiwen.com/subject/lxavghtx.html