开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第19天,点击查看活动详情
前言
上一小节,我们介绍了圆形与圆锥缓冲几何体,除此之外three还有其他的几何体我们可以自己看一看留下个印象,真的碰到了可以用到。本小节我们了解下类型化数组,为three进一步学习打下基础。
类型化数组
概念
类型化数组:与数组类似的对象,能够在缓冲区访问二进制数据。它分为缓冲区与视图两部分: 缓冲区:利用ArrayBuffer对象进行实现,它是一个数据分块,我们不能直接访问缓冲区里面的内容,必须通过视图或者DataView。 视图:用于访问缓冲区中的数据,这里我们就了解下类型化数组视图,它有好几种类型,如:Int8,Int16,Float32等,通过对应的类型方法就能创建视图。下面我们要用到的就是Float32Array类型。
属性方法
类型化数组有自己独有的属性方法,我们来了解一下:
- length:表示元素个数。
const data = new Float32Array([1.0, 2.0, 3.0]);
console.log(data.length); //3
- byteLength:表示元素的字节总数,单位就是B。
const data = new Float32Array([1.0, 2.0, 3.0]);
const data1 = new Int8Array([1, 2, 3]);
console.log(data.byteLength); //12 一个4B
console.log(data1.byteLength); //3 一个1B
- BYTES_PER_ELEMENT:表示单个元素在内存中的子节数。
//单位也是B
console.log(data.BYTES_PER_ELEMENT); //4
console.log(data1.BYTES_PER_ELEMENT); //1
各个构造函数元素代表的字节数如下:
Int8Array:1B
Int16Array:2B
Float32Array:4B
Float64Array:8B
Uint8Array:1B 无符号整型8位
Uint16Array:2B 无符号整型16位。
- set(index,value):更新元素值的方法,index为索引,value为新值。
- get(index):获取索引为index的值。
- set(arr,off):插入新的元素,位置为off个元素之后。
总结
以上就是类型化数组的含义跟属性,重点是对缓冲与视图的理解。学习了类型化数组能更加方便理解three构造几何体。