# 图形变换
用于对组件进行旋转、平移、缩放、矩阵变换等操作。
> **说明:**
>
> 从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## rotate
rotate(value: RotateOptions): T
设置组件旋转。
**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
| value | [RotateOptions](#rotateoptions对象说明) | 是 | 可使组件在以组件左上角为坐标原点的坐标系中进行旋转(坐标系如下图所示)。其中,(x, y, z)指定一个矢量,作为旋转轴。
旋转轴和旋转中心点都基于坐标系设定,组件发生位移时,坐标系不会随之移动。
默认值: 在x、y、z都不指定时,x、y、z的默认值分别为0、0、1。指定了x、y、z任何一个值时,x、y、z中未指定的值默认为0。
{
centerX: '50%',
centerY: '50%',
centerZ: 0,
perspective: 0
}
单位:vp

centerZ、perspective从API version 10开始支持在ArkTS卡片中使用。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## rotate18+
rotate(options: Optional\): T
设置组件旋转。与[rotate](#rotate)相比,options参数新增了对undefined类型的支持。
**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
| options | Optional\<[RotateOptions](#rotateoptions对象说明)> | 是 | 可使组件在以组件左上角为坐标原点的坐标系中进行旋转(坐标系如下图所示)。其中,(x, y, z)指定一个矢量,作为旋转轴。
旋转轴和旋转中心点都基于坐标系设定,组件发生位移时,坐标系不会随之移动。
默认值: 在x、y、z都不指定时,x、y、z的默认值分别为0、0、1。指定了x、y、z任何一个值时,x、y、z中未指定的值默认为0。
{
centerX: '50%',
centerY: '50%',
centerZ: 0,
perspective: 0
}
单位:vp

centerZ、perspective从API version 10开始支持在ArkTS卡片中使用。
当options的值为undefined时,恢复为无旋转效果。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## rotate20+
rotate(options: Optional): T
设置组件旋转效果。与[rotate](#rotate18)相比,options参数新增了对RotateAngleOptions类型的支持。
**卡片能力:** 从API version 20开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| options | Optional\<[RotateOptions](#rotateoptions对象说明) \| [RotateAngleOptions](#rotateangleoptions20对象说明)> | 是 | RotateOptions可使组件在以组件左上角为坐标原点的坐标系中进行旋转(坐标系如下图所示)。其中,(x, y, z)指定一个矢量,作为旋转轴。
旋转轴和旋转中心点都基于坐标系设定,组件发生位移时,坐标系不会随之移动。
默认值:在x、y、z都不指定时,x、y、z的默认值分别为0、0、1。指定了x、y、z任何一个值时,x、y、z中未指定的值默认为0。
{
centerX: '50%',
centerY: '50%',
centerZ: 0,
perspective: 0
}
RotateAngleOptions可使组件在以组件左上角为坐标原点的坐标系中进行旋转(坐标系如下图所示)。其中,(angleX, angleY, angleZ)指定三个轴方向上的旋转角。
默认值:
{
angleX:0,
angleY:0,
angleZ:0,
centerX: '50%',
centerY: '50%',
centerZ: 0,
perspective: 0
}

当options的值为undefined时,恢复为无旋转效果。 |
**返回值:**
| 类型 | 说明 |
| ---- | -------------- |
| T | 返回当前组件。 |
## translate
translate(value: TranslateOptions): T
设置组件平移。
**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------- | ---- | ------------------------------------------------------------ |
| value | [TranslateOptions](#translateoptions对象说明) | 是 | 可使组件在以组件左上角为坐标原点的坐标系中进行移动(坐标系如下图所示)。其中,x,y,z的值分别表示在对应轴移动的距离,值为正时表示向对应轴的正向移动,值为负时表示向对应轴的反向移动。移动距离支持数字和字符串(比如'10px',‘10%’)两种类型。
默认值:
{
x: 0,
y: 0,
z: 0
}
单位:vp

**说明:**
z轴方向移动时由于观察点位置不变,z的值接近观察点组件会有放大效果,远离则缩小。
 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## translate18+
translate(translate: Optional\): T
设置组件平移。与[translate](#translate)相比,translate参数新增了对undefined类型的支持。
**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| --------- | -------------------------------------------------------- | ---- | ------------------------------------------------------------ |
| translate | Optional\<[TranslateOptions](#translateoptions对象说明)> | 是 | 可使组件在以组件左上角为坐标原点的坐标系中进行移动(坐标系如下图所示)。其中,x,y,z的值分别表示在对应轴移动的距离,值为正时表示向对应轴的正向移动,值为负时表示向对应轴的反向移动。移动距离支持数字和字符串(比如'10px',‘10%’)两种类型。
默认值:
{
x: 0,
y: 0,
z: 0
}
单位:vp

**说明:**
z轴方向移动时由于观察点位置不变,z的值接近观察点组件会有放大效果,远离则缩小。

当translate的值为undefined时,恢复为无平移效果。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## scale
scale(value: ScaleOptions): T
设置组件缩放。
**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------------------------------- | ---- | ------------------------------------------------------------ |
| value | [ScaleOptions](#scaleoptions对象说明) | 是 | 可以分别设置X轴、Y轴、Z轴的缩放比例,默认值为1,同时可以通过centerX和centerY设置缩放的中心点。
默认值:
{
x: 1,
y: 1,
z: 1,
centerX:'50%',
centerY:'50%'
} |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## scale18+
scale(options: Optional\): T
设置组件缩放。与[scale](#scale)相比,options参数新增了对undefined类型的支持。
**卡片能力:** 从API version 18开始,该接口支持在ArkTS卡片中使用。
**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
| options | Optional\<[ScaleOptions](#scaleoptions对象说明)> | 是 | 可以分别设置X轴、Y轴、Z轴的缩放比例,默认值为1,同时可以通过centerX和centerY设置缩放的中心点。
默认值:
{
x: 1,
y: 1,
z: 1,
centerX:'50%',
centerY:'50%'
}
当options的值为undefined时,恢复为无缩放效果。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## transform
transform(value: object): T
可用于显示二维变换时的矩阵变换。包含三维变换时应使用[transform3D](#transform3d20)接口。
**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| value | object | 是 | 设置当前组件的变换矩阵。object当前仅支持[Matrix4Transit](../js-apis-matrix4.md)矩阵对象类型。 |
**返回值:**
| 类型 | 说明 |
| ------ | ------------------------ |
| T | 返回当前组件。 |
## transform18+
transform(transform: Optional\