随笔分类 - javascript
摘要:剪枝min层剪去beta最小得分比alpha最大得分还要小的得分,如果alpha是8,beta比8小的节点都剪掉,因为max层,只会选最大的 剪枝max层剪去比alpha最大得分比beta最小得分还要大的得分,如果beta是8,alpha比8的节点都需要剪掉,因为min层只会选最小的 let boa
阅读全文
摘要:一个tab有几个进程 浏览器进程,负责页面显示,用户交互,子进程管理等 渲染进程,将html,css,js转换为网页 GPU进程,用来渲染UI界面 网络进程,负责网页资源加载 插件进程,主要负责插件的运行 进程,线程,协程(纤程) 一个进程就是一个程序的运行实例 线程是依附进程的,而进程中的多线程并
阅读全文
摘要:渲染主线程的task都安排了什么任务 还没拿到html的时候已经分配了任务给主线程,这个任务是先执行一下unload事件,然后在开始navigationStart发起导航任务 在请求过程中执行完了commitNavigationEnd任务后,就开始执行domloading了,渲染进程接收浏览器进程提
阅读全文
摘要:虚拟CPU执行代码 读指令,将指令里的地址值写入到寄存器 计算指令,将寄存器里的 值进行计算 返回结果,将计算结果写回寄存器里 function add(x, y) { var z = x+y return z } console.log(add(1, 2)) [generated bytecode
阅读全文
摘要:隐藏类 对象中所包含所有属性 每个属性相对于对象的偏移量 let point = {x:100,y:200} 在v8中隐藏类又称为map,每个对象都有一个map属性,其值指向存储中的隐藏类 有了map之后,point.x访问x属性时,v8会先查询point的map中x属性相对point对象的偏移量,
阅读全文
摘要:排序属性与常规属性 数字属性属于排序属性 其他的属于常规属性 function Foo() { this[100] = 'test-100' this[1] = 'test-1' this["B"] = 'bar-B' this[50] = 'test-50' this[9] = 'test-9'
阅读全文
摘要:透视投影 1. 将投影面上x,y,z方向上的点,投影到剪裁空间有一定比例关系 2. y方向上的比例关系 y/y0 = y' y0/-z = tan(fov/2) y' = y / tan(fov/2)*-z 让f=1/tan(fov/2) y' = f/-z * y 3. x方向上的比例关系 x'
阅读全文
摘要:绕任意轴旋转 1. 向量F为旋转轴 2. 向量AC'为旋转后的向量 3. 向量AC为旋转前的向量 1. 求出向量AB 向量AB = (向量AC dot 向量AF) x 向量AF 2. 求出向量BC' 向量BC' = 向量BZ'sin theta + 向量BC cos theta 向量BZ' = 向量
阅读全文
摘要:观察坐标系 1. 定义摄像机的位置 const cameraPosition = new Vector3(0,0,10) 2. 指定摄像机的方向 // 摄像机看向坐标原点 const cameraTarget = new Vector3(0,0,0) // 用场景原点方向减去摄像机位置向量得到的结果
阅读全文
摘要:正交投影 正交投影是将世界空间的物体,映射到一个单位立方体上,然后缩放为单位立方体 // 平移 (left + right)/2 得到平移后的中心点位置,其他面类似 A = 1 0 0 -(left + right)/2 0 1 0 -(top + bottom)/2 0 0 1 -(far + n
阅读全文
摘要:正交矩阵 正交矩阵不用计算逆矩阵,计算转置矩阵就是它的逆矩阵 MM^T = I 因为MM^-1 = I 所以M^T = M^-1 检查正交矩阵 MM^T = I M = [ m11 m22 m33 m21 m22 m23 m31 m32 m33 ] // 将每一行用向量表示 r1 = [m11,m1
阅读全文
摘要:矩阵的行列式 只有方阵才能使用行列式,行列式可以告诉我们变换时对象被拉伸的程度 det( [ a b c d ] ) = ad * cb // 多阶的行列式拆成系数 * matrix(2x2)的形式进行计算 det( [ a b c d e f g h i ] ) = a * det( [ e f
阅读全文
摘要:矩阵的线性变换 1. 旋转 2. 缩放 3. 投影 4. 镜像 5. 切变 旋转矩阵 aM = b 向量与一个矩阵相乘得到一个新的向量 R(theta) = [p, q]^T = [ cosTheta, sinTheta -sinTheta, cosTheta ] 3D旋转 确定旋转方向 1. 左手
阅读全文
摘要:矩阵 矩阵乘法 AB != BA 不满足交换律(matrix(1x3) * matrix(3x1) = matrix(1x1)) !== matrix(3x1) * (matrix(1x3)) = matrix(3x3) (AB)C = A(BC) 结合律 K(AB) = (kA)B 分配律 (AB
阅读全文
摘要:向量运算 向量的点乘 a dot b theta. direction > 0 0 < theta < 90. 同向 0 theta = 90 垂直 < 0. 90 < theta < 180 反向 class Vector { constructor(...components){ this.co
阅读全文
摘要:直线与直线的位置关系 平面上的两条直线如果不平行,那么他们一定相交,并且有唯一的交点 Ax+By+C = 0 直线一般式适用平面上任意直线 根据两点求解一般式的系数 设两个点为 (x1, y1) , (x2, y2),则有: A = y2 - y1 B = x1 - x2 C = x2y1-x1y2
阅读全文
摘要:防抖与节流 防抖 触发多次的事件都归并为一次事件在给定的时间内进行触发 document.onmousemove = _.debounce(()=> { console.log(1) }, 1000, true // 首次立即执行 ) 节流 在一次事件中,按给定的时间进行分段触发 document.
阅读全文
摘要:Bezier参数方程 { randomRange: function (min, max) { return min + Math.random() * (max - min); }, quadraticBezier: function (p0, p1, p2, t, pFinal) { pFina
阅读全文
摘要:线性变换 2D旋转 aM = b 2D旋转矩阵 \[ \left[ \begin{matrix} x \\ y \end{matrix} \right] \times \left[ \begin{matrix} cos\theta & sin\theta \\ -sin\theta & cos\th
阅读全文
摘要:```js // Y组合子 fact = n => n == 1 ? 1 : n * fact(n - 1) // 无法匿名调用 (n => n == 1 ? 1 : n * fact(n - 1))(5) // 参数可以命名, 消灭掉里面掉fact fact = (f, n) => n == 1 ? 1 : n * f(f, n - 1); // 只能有一个参数 fact = f => n =>
阅读全文

浙公网安备 33010602011771号