跳到主要内容

mathematics

在我们的渲染引擎库中,提供了一系列数据类型和计算方法,用于支持图形学和渲染相关的操作。这些类型和方法涵盖了从基础向量、矩阵运算到复杂几何体计算的多个方面。本文将介绍这些数据类型及其相关的数学算法,帮助开发者快速上手并充分利用这些工具。

数据类型概览

以下是库中提供的主要数据类型及其用途:

Box(盒子)

表示一个三维空间中的轴对齐包围盒(AABB),通常用于碰撞检测和空间划分。 提供了计算盒子体积、交集和包围关系的方法。

Color(颜色)

表示颜色数据,支持 RGBA 格式。 提供颜色混合、插值等操作。

Image(图像)

表示图像数据,支持图像操作和像素访问。

Integer(整数)

提供整数类型的封装,支持高效的整数运算。

Matrix(矩阵)

提供 2D 和 3D 矩阵类型,支持矩阵变换、乘法、逆矩阵等操作。 常用于平移、旋转和缩放等变换操作,和投影计算。

MinMax(最小最大值)

用于表示一组数据的最小值和最大值,常用于范围计算。

Plane(平面)

表示一个三维空间中的平面,支持点到平面的距离计算、平面法线等操作。

Quaternion(四元数)

用于表示和计算旋转,支持插值和旋转复合。 比欧拉角更适合处理 3D 旋转,避免万向节锁问题。

Ray(射线)

表示一条射线,常用于光线追踪和碰撞检测。射线与平面的相交计算是渲染交互中的核心算法。

Real(实数)

提供对浮点数的封装,支持高精度计算。

Tuple(元组)

表示多个值的组合,常用于返回多个结果。

TypedArray(类型数组)

提供高效的数组存储,支持批量操作。

Vector(向量)

提供 2D 和 3D 向量类型,支持向量加减、点积、叉积、归一化等操作。

支持的类型转换