HarmonyOS Path的commands里的左边是如何定义相对哪里的

struct WaveAnim {
  build() {
    Path()
      .width('100%')
      .height('30')
      .commands('M0 30 Q100 100 200 20')
      .fillOpacity(0)
      .stroke('#E91839')
      .strokeWidth(1)
  }
}

上述代码是想在宽满屏、高30vp的范围内绘制一条波浪线,最终是想绘制三条不重叠的波浪线,配上动画实现水波纹的效果。

1、commands命令中的入参坐标范围是如何定义,比如范围高度定的是30, 但是命令左边移动到0,30 并不是从左下角的坐标点,该如何理解坐标点的取值范围。

2、有无实现参考如果实现水波纹动画(三条二次贝塞尔曲线)上下波动的动画效果。

HarmonyOS
2025-01-09 16:02:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

commands的坐标是相对于Path组件的坐标位置,以Path组件左上角为(0,0)点,commands的文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-drawing-components-path-V5#commands-1

绘制水波纹可以通过计时器setInterval调用以下代码实现:

getPath() {
  let path = '';
  let R = 80;
  for (let i = 0; i < 600; i++) {
    let dataS = new Date().getUTCMilliseconds();
    let T = Math.PI * 4
    let y = 50 + R * Math.sin(T * (dataS / 1000 - i / 600));
    if (i == 0) {
      path = `M${i} ${y}`;
    } else {
      path = `${path} ${i} ${y}`;
    }
  }
}
分享
微博
QQ
微信
回复
2025-01-09 18:36:17
相关问题
HarmonyOS 用户证书存放路径哪里
509浏览 • 1回复 待解决
如何将 Checkbox 文字放在左边
11309浏览 • 1回复 待解决
appscope定义资源在Har不能引用
510浏览 • 1回复 待解决
HarmonyOS 使用自定义相机左边有间距
454浏览 • 1回复 待解决
HarmonyOS 相对布局高度问题
540浏览 • 1回复 待解决
HarmonyOS Tabs bar 怎么设置对齐左边
1409浏览 • 1回复 待解决
HarmonyOS 发布APIversionId哪里拿到
328浏览 • 1回复 待解决