From da70fb8abd168e654e0f7f2e64cd861e0f4912cb Mon Sep 17 00:00:00 2001 From: linghuam <1551827898@qq.com> Date: Thu, 13 Jun 2019 14:16:16 +0800 Subject: [PATCH] add: threejs.md --- b00-阅读笔记/threejs源码/threejs.md | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 b00-阅读笔记/threejs源码/threejs.md diff --git a/b00-阅读笔记/threejs源码/threejs.md b/b00-阅读笔记/threejs源码/threejs.md new file mode 100644 index 0000000..8e29a31 --- /dev/null +++ b/b00-阅读笔记/threejs源码/threejs.md @@ -0,0 +1,48 @@ +# threejs 源码阅读 + +## Math + +生成全局唯一id + +```js +var generateUUID = (function() { + // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 + + var lut = []; + + for (var i = 0; i < 256; i++) { + lut[i] = (i < 16 ? "0" : "") + i.toString(16); + } + + return function generateUUID() { + var d0 = (Math.random() * 0xffffffff) | 0; + var d1 = (Math.random() * 0xffffffff) | 0; + var d2 = (Math.random() * 0xffffffff) | 0; + var d3 = (Math.random() * 0xffffffff) | 0; + var uuid = + lut[d0 & 0xff] + + lut[(d0 >> 8) & 0xff] + + lut[(d0 >> 16) & 0xff] + + lut[(d0 >> 24) & 0xff] + + "-" + + lut[d1 & 0xff] + + lut[(d1 >> 8) & 0xff] + + "-" + + lut[((d1 >> 16) & 0x0f) | 0x40] + + lut[(d1 >> 24) & 0xff] + + "-" + + lut[(d2 & 0x3f) | 0x80] + + lut[(d2 >> 8) & 0xff] + + "-" + + lut[(d2 >> 16) & 0xff] + + lut[(d2 >> 24) & 0xff] + + lut[d3 & 0xff] + + lut[(d3 >> 8) & 0xff] + + lut[(d3 >> 16) & 0xff] + + lut[(d3 >> 24) & 0xff]; + + // .toUpperCase() here flattens concatenated strings to save heap memory space. + return uuid.toUpperCase(); + }; +})(); +```