Script Graph

使用指南

数学运算 / 仿射变换 / AffineTransform节点

数学运算 / 仿射变换 / AffineTransform 节点手册,包含 11 个节点的用途、引脚、使用场景和注意事项。

16

学习目标

处理数值、向量、矩阵、颜色、矩形和旋转等游戏开发高频数学数据。

覆盖范围

  • 节点数量:11
  • 分类路径:数学运算 / 仿射变换 / AffineTransform

典型使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

通用注意事项

  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

节点索引

节点节点 ID输入/输出执行方式
拆分仿射变换affineTransformBreak1 / 6立即继续
创建仿射变换affineTransformCreate7 / 2立即继续
从Mat4构造仿射变换affineTransformFromMat41 / 1立即继续
仿射变换尺寸affineTransformTransformSize2 / 1立即继续
仿射变换矩形affineTransformTransformRect2 / 1立即继续
仿射变换拼接affineTransformConcat2 / 1立即继续
仿射变换求逆affineTransformInvert1 / 1立即继续
仿射变换向量affineTransformTransformVec22 / 1立即继续
仿射变换有向包围盒affineTransformTransformObb3 / 4立即继续
获取单位仿射变换affineTransformGetIdentity0 / 1立即继续
克隆仿射变换affineTransformClone2 / 2立即继续

拆分仿射变换

拆分二维仿射变换:将仿射变换拆解为 6 个独立的数值分量。 输出字段顺序为 a / b / c / d / tx / ty,与构造器参数顺序和持久化顺序一致。 公开字段在数学意义上对应矩阵布局 |a c tx| / |b d ty| / |0 0 1|,这些输出适用于后续数值处理、调试或重新组装。

节点信息

字段
节点 IDaffineTransformBreak
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
matrix仿射变换数据affineTransform要拆分的二维仿射变换可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
aa数据number仿射矩阵分量 a-可选
bb数据number仿射矩阵分量 b-可选
cc数据number仿射矩阵分量 c-可选
dd数据number仿射矩阵分量 d-可选
txtx数据number仿射矩阵平移分量 tx-可选
tyty数据number仿射矩阵平移分量 ty-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

创建仿射变换

创建二维仿射变换:根据 6 个数值分量构造一个新的 AffineTransform 实例。 字段顺序为 a / b / c / d / tx / ty,与 AffineTransform 构造器参数顺序、默认值存储顺序和编译输出顺序保持一致,不做额外的数学排版重排。 矩阵布局为 |a c tx| / |b d ty| / |0 0 1|。

节点信息

字段
节点 IDaffineTransformCreate
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
aa数据number仿射矩阵分量 a(线性变换第 0 行第 0 列)输入框
默认值:1
必填
bb数据number仿射矩阵分量 b(线性变换第 1 行第 0 列)输入框
默认值:0
必填
cc数据number仿射矩阵分量 c(线性变换第 0 行第 1 列)输入框
默认值:0
必填
dd数据number仿射矩阵分量 d(线性变换第 1 行第 1 列)输入框
默认值:1
必填
txtx数据number仿射矩阵平移分量 tx输入框
默认值:0
必填
tyty数据number仿射矩阵平移分量 ty输入框
默认值:0
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
matrix仿射变换数据affineTransform构造出的二维仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

从Mat4构造仿射变换

从 4x4 矩阵提取二维仿射变换:从 Mat4 中提取二维相关分量构造一个新的 AffineTransform。 提取规则为 a=m00, b=m01, c=m04, d=m05, tx=m12, ty=m13。 注意:该节点只提取 Mat4 的二维相关分量,不是完整的 3D → 2D 语义压缩器。

节点信息

字段
节点 IDaffineTransformFromMat4
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
mat4x4矩阵数据mat4源 4x4 矩阵可编辑控件
默认值:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据affineTransform提取出的二维仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换尺寸

应用二维仿射变换到尺寸:将仿射变换矩阵的线性部分应用到尺寸上,返回变换后的新尺寸。 注意:该节点只对宽高应用线性部分变换(a/b/c/d),tx / ty 平移不会直接参与 Size 结果计算。

节点信息

字段
节点 IDaffineTransformTransformSize
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
size尺寸数据size要变换的尺寸-必填
t仿射变换数据affineTransform二维仿射变换矩阵可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据size变换后的尺寸-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换矩形

应用二维仿射变换到矩形:将仿射变换应用到矩形上,返回变换后区域的轴对齐包围盒(AABB)。 2D 游戏开发中用于在物体旋转后快速计算其粗略碰撞区域。输出为包含变换后所有角点的最小轴对齐矩形,而非有向包围盒。如需获取变换后的四个有向角点,请使用 AffineTransformTransformObb 节点。

节点信息

字段
节点 IDaffineTransformTransformRect
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
rect矩形数据rect要变换的矩形-必填
t仿射变换数据affineTransform二维仿射变换矩阵可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据rect变换后的轴对齐包围矩形-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换拼接

拼接两个二维仿射变换:将两个仿射矩阵相乘,用于组合多个 2D 变换。 计算语义为”先应用 t1,再应用 t2”。例如,先平移到某个位置,再进行缩放。适合实现复杂的 2D 变换链,如相机跟随或层级变换。 返回一个新的 AffineTransform 实例,输入不会被原地修改。

节点信息

字段
节点 IDaffineTransformConcat
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
t1变换T1数据affineTransform先应用的仿射变换 T1可编辑控件
默认值:[1,0,0,1,0,0]
必填
t2变换T2数据affineTransform后应用的仿射变换 T2可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据affineTransform拼接后的仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换求逆

求逆二维仿射变换:计算输入仿射矩阵的逆变换,用于撤销 2D 变换。 例如,将 2D 物体平移后,用逆变换可以将其恢复到原位置。注意:当线性部分不可逆(行列式为 0)时,结果可能退化为含有 Infinity 或 NaN 的非有限数值。

节点信息

字段
节点 IDaffineTransformInvert
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
t仿射变换数据affineTransform要求逆的仿射变换可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据affineTransform逆仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换向量

应用二维仿射变换到向量:将仿射变换矩阵应用到二维向量上,返回变换后的新向量。 2D 游戏开发中常用于坐标转换——将一个点从本地空间转换到世界空间,或者从父节点空间转换到子节点空间。

节点信息

字段
节点 IDaffineTransformTransformVec2
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
point数据vector2要变换的二维向量可编辑控件
默认值:[0,0]
必填
t仿射变换数据affineTransform二维仿射变换矩阵可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
result结果数据vector2变换后的二维向量-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

仿射变换有向包围盒

应用二维仿射变换到矩形并获取有向包围盒:将仿射变换应用到矩形上,返回变换后的四个角点(有向包围盒)。 与 TransformRect 不同,该节点返回四个独立的 Vec2 角点,而非轴对齐包围盒。适合需要精确碰撞检测或旋转后的角点坐标的场景。 flipY 用于切换四个角点的纵向布局语义,默认值为 true,与引擎默认行为一致。当 flipY = true 时,topLeft 位于矩形原点位置;当 flipY = false 时,bottomLeft 位于矩形原点位置。

节点信息

字段
节点 IDaffineTransformTransformObb
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
rect矩形数据rect要变换的矩形-必填
t仿射变换数据affineTransform二维仿射变换矩阵可编辑控件
默认值:[1,0,0,1,0,0]
必填
flipY翻转Y数据boolean是否翻转纵向角点布局语义,默认 true 与引擎一致可编辑控件
默认值:true
可选

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
bottomLeft左下角数据vector2变换后的左下角点-可选
topLeft左上角数据vector2变换后的左上角点-可选
topRight右上角数据vector2变换后的右上角点-可选
bottomRight右下角数据vector2变换后的右下角点-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

获取单位仿射变换

获取单位二维仿射变换:返回不进行任何变换的二维仿射矩阵,即无变换状态。 2D 游戏开发中常用于初始化 2D 变换的起点。矩阵布局为 |1 0 0| / |0 1 0| / |0 0 1|,即 [a=1, b=0, c=0, d=1, tx=0, ty=0]。

节点信息

字段
节点 IDaffineTransformGetIdentity
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

无。

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
matrix单位仿射变换数据affineTransform单位二维仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。

克隆仿射变换

克隆二维仿射变换:创建输入仿射变换的深拷贝副本。 返回一个新的 AffineTransform 实例,内容与输入相同但引用不同。

节点信息

字段
节点 IDaffineTransformClone
分类数学运算
二级分类仿射变换
分组AffineTransform
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
matrix仿射变换数据affineTransform要克隆的二维仿射变换可编辑控件
默认值:[1,0,0,1,0,0]
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
matrix仿射变换数据affineTransform克隆出的新仿射变换-可选

使用场景

  • 计算角色移动方向、距离和插值
  • 处理 UI 尺寸、碰撞范围和颜色变化
  • 组合旋转、矩阵和仿射变换

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 向量和矩阵节点要确认维度匹配。
  • 角度、弧度、归一化等概念在不同节点中可能有不同约束。