You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何垂直翻转Clipper设计?将底部曲线移至顶部需修改哪些参数?

垂直翻转Clipper曲线的修改方案

要把底部的曲线移到顶部,只需修改几个关键坐标参数,以下是调整后的完整代码:

class ClipPathClass extends CustomClipper<Path> {

  @override
  Path getClip(Size size) {
    Path path = Path();
    path.lineTo(0.0, 0.0); // 修改起始垂直位置为顶部
    double x = 0;
    double y = 0.0; // 曲线的基准y坐标改为顶部
    double yControlPoint = size.height * .12; // 控制点y坐标调整到顶部区域
    double increment = size.width / 15;

    while (x < size.width) {
      path.quadraticBezierTo(
          x + increment / 2, yControlPoint, x + increment, y);
      x += increment;
    }

    path.lineTo(size.width, size.height); // 修改结束连接点到底部

    path.close();
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}

关键修改点说明:

  • 起始路径:将path.lineTo(0.0, size.height)改为path.lineTo(0.0, 0.0),让路径从左上角开始,而非左下角
  • 曲线基准y值:把double y = size.height改为double y = 0.0,让曲线的锚点固定在顶部
  • 贝塞尔控制点:将yControlPoint = size.height * .88调整为size.height * .12,控制点从底部上方区域移到顶部下方区域,保证曲线形态和原底部曲线一致
  • 收尾路径:把path.lineTo(size.width, 0.0)改为path.lineTo(size.width, size.height),让路径从右上角连接到底部,闭合后形成顶部带曲线的裁剪区域

内容的提问来源于stack exchange,提问作者imran sifat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:29:53