首页 > 其他分享 >鸿蒙HarmonyOS NEXT开发:图形变换(ArkTS通用属性)

鸿蒙HarmonyOS NEXT开发:图形变换(ArkTS通用属性)

时间:2024-08-09 17:27:53浏览次数:14  
标签:ArkTS version 卡片 NEXT HarmonyOS 原子化 API 组件 100

图形变换

用于对组件进行旋转、平移、缩放、矩阵变换等操作。

说明:

从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

rotate

rotate(value: RotateOptions)

设置组件旋转。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueRotateOptions可使组件在以组件左上角为坐标原点的坐标系中进行旋转(坐标系如下图所示)。其中,(x, y, z)指定一个矢量,作为旋转轴。
旋转轴和旋转中心点都基于坐标系设定,组件发生位移时,坐标系不会随之移动。
默认值:
{
x: 0,
y: 0,
z: 0,
centerX: ‘50%’,
centerY: ‘50%’
centerZ: 0,
perspective: 0
}centerZ、perspective从API version 10开始支持在ArkTS卡片中使用。

translate

translate(value: TranslateOptions)

设置组件平移。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueTranslateOptions可使组件在以组件左上角为坐标原点的坐标系中进行移动(坐标系如下图所示)。其中,x,y,z的值分别表示在对应轴移动的距离,值为正时表示向对应轴的正向移动,值为负时表示向对应轴的反向移动。移动距离支持数字和字符串(比如’10px’,‘10%’)两种类型。
默认值:
{
x: 0,
y: 0,
z: 0
}说明:
z轴方向移动时由于观察点位置不变,z的值接近观察点组件会有放大效果,远离则缩小。

scale

scale(value: ScaleOptions)

设置组件缩放。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueScaleOptions可以分别设置X轴、Y轴、Z轴的缩放比例,默认值为1,同时可以通过centerX和centerY设置缩放的中心点。
默认值:
{
x: 1,
y: 1,
z: 1,
centerX:‘50%’,
centerY:‘50%’
}

transform

transform(value: object)

设置组件的变换矩阵。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueobject设置当前组件的变换矩阵。object当前仅支持Matrix4Transit矩阵对象类型。

RotateOptions对象说明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称类型必填说明
xnumber旋转轴向量x坐标。
ynumber旋转轴向量y坐标。
znumber旋转轴向量z坐标。
anglenumber | string旋转角度。取值为正时相对于旋转轴方向顺时针转动,取值为负时相对于旋转轴方向逆时针转动。取值可为string类型,如’90deg’。
centerXnumber | string变换中心点x轴坐标。
centerYnumber | string变换中心点y轴坐标。
centerZ10+numberz轴锚点,即3D旋转中心点的z轴分量。
perspective10+number视距,即视点到z=0平面的距离。
旋转轴和旋转中心点都基于坐标系设定,组件发生位移时,坐标系不会随之移动。

TranslateOptions对象说明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称类型必填说明
xnumber | stringx轴的平移距离。
ynumber | stringy轴的平移距离。
znumber | stringz轴的平移距离。

ScaleOptions对象说明

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

名称类型必填说明
xnumberx轴的缩放倍数。x>1时以x轴方向放大,0<x<1时以x轴方向缩小,x<0时沿x轴反向并缩放。
ynumbery轴的缩放倍数。y>1时以y轴方向放大,0<y<1时以y轴方向缩小,y<0时沿y轴反向并缩放。
znumberz轴的缩放倍数。z>1时以z轴方向放大,0<z<1时以z轴方向缩小,z<0时沿z轴反向并缩放。
centerXnumber | string变换中心点x轴坐标。
centerYnumber | string变换中心点y轴坐标。

说明:

当组件同时设置了rotate和scale属性时,centerX和centerY的取值会发生冲突,此时centerX和centerY的值以最后设定的属性的值为准。

示例

// xxx.ets
import matrix4 from '@ohos.matrix4'

@Entry
@Component
struct TransformExample {
  build() {
    Column() {
      Text('rotate').width('90%').fontColor(0xCCCCCC).padding(15).fontSize(14)
      Row()
        .rotate({
          x: 0,
          y: 0,
          z: 1,
          centerX: '50%',
          centerY: '50%',
          angle: 300
        }) // 组件以矢量(0,0,1)为旋转轴,绕中心点顺时针旋转300度
        .width(100).height(100).backgroundColor(0xAFEEEE)

      Text('translate').width('90%').fontColor(0xCCCCCC).padding(10).fontSize(14)
      Row()
        .translate({ x: 100, y: 10 }) // x轴方向平移100,y轴方向平移10
        .width(100).height(100).backgroundColor(0xAFEEEE).margin({ bottom: 10 })

      Text('scale').width('90%').fontColor(0xCCCCCC).padding(15).fontSize(14)
      Row()
        .scale({ x: 2, y: 0.5 }) // 高度缩小一倍,宽度放大一倍,z轴在2D下无效果
        .width(100).height(100).backgroundColor(0xAFEEEE)

      Text('Matrix4').width('90%').fontColor(0xCCCCCC).padding(15).fontSize(14)
      Row()
        .width(100).height(100).backgroundColor(0xAFEEEE)
        .transform(matrix4.identity().translate({ x: 50, y: 50 }).scale({ x: 1.5, y: 1 }).rotate({
          x: 0,
          y: 0,
          z: 1,
          angle: 60
        }))
    }.width('100%').margin({ top: 5 })
  }
}
ts

 

标签:ArkTS,version,卡片,NEXT,HarmonyOS,原子化,API,组件,100
From: https://blog.csdn.net/shudaoshanBBQ/article/details/141063518

相关文章

  • 鸿蒙HarmonyOS NEXT开发:形状裁剪(ArkTS通用属性)
    形状裁剪用于对组件进行裁剪、遮罩处理。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。clip12+clip(value:boolean)是否对当前组件进行裁剪。系统能力: SystemCapability.ArkUI.ArkUI.Full参数:参数名类型必填说明valu......
  • 鸿蒙HarmonyOS NEXT开发:颜色渐变(ArkTS通用属性)
    颜色渐变设置组件的颜色渐变效果。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。linearGradientlinearGradient(value:{angle?:number|string;direction?:GradientDirection;colors:Array<[ResourceColor,number]......
  • 鸿蒙HarmonyOS NEXT开发:菜单控制(ArkTS通用属性)
    菜单控制为组件绑定弹出式菜单,弹出式菜单以垂直列表形式显示菜单项,可通过长按、点击或鼠标右键触发。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。CustomBuilder里不支持再使用bindMenu、bindContextMenu弹出菜单。多级菜......
  • 鸿蒙HarmonyOS NEXT开发:悬浮态效果(ArkTS通用属性)
    悬浮态效果设置组件的鼠标悬浮态显示效果。说明:从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。hoverEffecthoverEffect(value:HoverEffect)设置组件的鼠标悬浮态显示效果。原子化服务API: 从APIversion11开始,该接口支持在......
  • 鸿蒙(Harmony) NEXT - AlphabetIndexer实现联系人字母索引
    鸿蒙(Harmony)NEXT9月份就要正式上架了,并且不会再兼容安卓平台,于是我也赶紧给App开发鸿蒙版本,接下来会写一系列的Harmony开发教程。今天使用AlphabetIndexer实现联系人字母索引,AlphabetIndexer是官方封装好的组件咱们实现后的效果图:代码实现首先在aboutToAppear方法中初始......
  • 鸿蒙HarmonyOS开发:常用布局及实用技巧
    文章目录一、概述二、盒子模型三、线性布局(Column/Row)1、space属性2、justifyContent属性3、alignItems属性四、实用技巧1、Blank组件的使用2、layoutWeight属性的使用一、概述布局是指对页面组件进行排列和定位的过程,其目的是有效地组织和展示页面内容,会涉及到......
  • HarmonyOS应用开发知识地图
    HarmonyOS应用开发旅程HarmonyOS应用开发旅程PS:Xmind原文件可以直接跳转官方具体文档地址,如需要原文件请联系:DYZZ19801.准备与学习学习HarmonyOS的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践了解HarmonyOSHarmonyOS介绍HarmonyOS......
  • HarmonyOS 私仓搭建实战
    HarmonyOS私仓搭建实战背景在Android和iOS开发中很多时候都以以二进制的产物的方式进行依赖和协作,Android基于Mave为仓库,iOS有Pod为仓库,我们可以在官方提供的的平台使用别人开放的库,极大的提高了大家的开发效率。但是有些公司业务相关的库并不想被外部人员使用,上传到外部......
  • HarmonyOS 音视频之音频采集实战
    HarmonyOS音视频之音频采集实战背景应用开发过程中很多场景都有音频采集需求,比如聊天功能的发送语音功能,实时语音转文本功能,实时语音通话,实时视频通话等。在Android和iOS端,系统提供了两种形式:实时音频流采集音频文件录制系统还提供了不同形式的API,比如Android:AudioRec......
  • 【Harmony Next】七夕前学会创建开屏动画拿下女同事的芳心
    【HarmonyNext】七夕前学会创建开屏动画拿下女同事的芳心一个优秀的项目需要一个*格够高的动画来开启,下面教你用三步快速实现鸿蒙应用的开屏动画1.创建窗口使用windowStage.createSubWindow("splash_window")创建窗口对窗口进行管理,实现加载开屏动画在UIAbility的生命周期......