gl-matrix 简单瞅瞅

gl-matrix是一个针对高性能场景设计的JavaScript库,专注于矩阵和向量运算。它通过减少开销和复用实现高效计算。库中包含各种工具函数和常量,采用误差判断方式确定向量相等。尽管mat2较少应用,但mat4和四元数广泛用于3D场景。mat3和mat2d在特定情况下使用,以节省内存和计算资源,但它们仅是mat4的部分表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接: gl-matrix 简单瞅瞅

上一篇: glfx 彩色网格

下一篇: fp-ts 简单瞅瞅

首先这个库的设计比较奇怪, 主要是由于考虑的是高性能场景, 也就是尽量复用和减少计算量

一个简单的创建操作, 都会尽量减少开销

up-e7caae0e0cd7cd8697a60a088dea8ab9f0a.png

定义了一些常用工具函数和常量

相等的判断是根据误差来的, 也就是误差不超过一定的值就视为相等

hypot函数是计算所有参数的平方和后开根号, 可以看做是n维向量的长度


console.log(equals(1000, 1001)); // false
console.log(equals(1e9, 1e9+1)); // true
const degree = Math.PI / 180;

export function toRadian(a) {
  return a * degree;
}

export function equals(a, b) {
  return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));
}

if (!Math.hypot)
  Math.hypot = function () {
    var y = 0,
      i = arguments.length;
    while (i--) y += arguments[i] * arguments[i];
    return Math.sqrt(y);
  };

mat2代码比较少, 主要是操作少, 而且相对而言没有高阶那么多应用场景, 主要还是mat4和四元数用的多一点, mat3或者mat2d也是在一些情况下为了减少内存使用和计算量才用的, 但是他们都有场景限制, 毕竟只是mat4的一部分, 去掉了常数值而已

mat3和mat2d中, 计算范数时是需要加上那个没记录的1, 没记录是因为默认这个值不变, 而不是不存在

export function frob(a) {
  return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], 1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值