pyglet.math
矩阵和向量数学。
该模块提供了向量和矩阵对象,包括ve2、ve3、ve4、mat3和mat4。支持最常见的矩阵和向量运算。其中包括用于旋转、缩放和变换的辅助方法。这个 Mat4
包括用于创建正交投影矩阵和透视投影矩阵的类方法。
矩阵的行为就像它们在GLSL中一样:它们以列为主的顺序指定,并在向量的左侧相乘,向量被视为列。
备注
出于性能原因,矩阵类型子类 tuple 。因此,它们是不变的。所有操作都返回一个新对象;该对象不会就地更新。
- class Mat3
3x3矩阵
Mat3 是一个不变的3x3矩阵,包括最常见的运算符。
可以创建一个包含12个值的列表或元组的矩阵。如果未提供任何值,则会创建一个“单位矩阵”(主对角线上为1.0)。Mat3对象是不可变的,因此所有操作都返回一个新的Mat3对象。
备注
使用“@”运算符执行矩阵乘法。
- class Mat4
4x4矩阵
Mat4 是一个不变的4x4矩阵,它包含最常见的运算符。这包括用于创建要由OpenGL使用的正交投影矩阵和透视投影矩阵的类方法。
可以创建一个包含16个值的列表或元组的矩阵。如果未提供任何值,则会创建一个“单位矩阵”(主对角线上为1.0)。Mat4对象是不可变的,因此所有操作都返回一个新的Mat4对象。
备注
使用“@”运算符执行矩阵乘法。
- static __new__(
- cls: type[Mat4T],
- values: Iterable[float] = (1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0),
- 返回类型:
TypeVar
(Mat4T
, bound =Mat4
)
- classmethod from_translation(vector: Vec3) Mat4T
从一个矢量3创建一个转换矩阵。
- 返回类型:
TypeVar
(Mat4T
, bound =Mat4
)
- classmethod look_at( )
创建指向目标的查看矩阵。
该方法采用三个Vec 3,描述观看者的位置、他们正在观看的位置和向上的轴(通常在Y轴上为正值)。生成的Mat 4可以用作投影矩阵。
- classmethod orthogonal_projection( ) Mat4T
创建用于OpenGL的Mat4正交投影矩阵。
给定左、右、底、顶值和近/远z平面,创建4x4投影矩阵。这对于设置
projection
。- 返回类型:
TypeVar
(Mat4T
, bound =Mat4
)
- classmethod perspective_projection( ) Mat4T
创建用于OpenGL的Mat4透视投影矩阵。
给定所需的纵横比、近/远平面和FOV(视场),创建4x4投影矩阵。这对于设置
projection
。- 返回类型:
TypeVar
(Mat4T
, bound =Mat4
)
- class Quaternion
四元
- static __new__( ) Quaternion
- 返回类型:
- conjugate() Quaternion
- 返回类型:
- dot(other: Quaternion) float
- 返回类型:
- classmethod from_mat3() Quaternion
- 返回类型:
- classmethod from_mat4() Quaternion
- 返回类型:
- normalize() Quaternion
- 返回类型:
- class Vec2
表示为XY坐标对的二维载体。
- x
- y
- class Vec3
表示为XY Z坐标的三维载体。
- x
- y
- z