zoukankan      html  css  js  c++  java
  • 画曲线

    代码:

    import 'package:flutter/material.dart';

    class HomePage extends StatelessWidget {
    const HomePage({Key key}) : super(key: key);

    @override
    Widget build(BuildContext context) {
    return Scaffold(
    body: Column(
    children: <Widget>[
    ClipPath(//路径裁切
    clipper: BottomClipper(),///路径
    child: Container(
    color: Colors.deepPurpleAccent,
    height: 200.0,
    ),
    )
    ],
    ),
    );
    }
    }

    class BottomClipper extends CustomClipper<Path> {

    @override
    Path getClip(Size size) {//child 元素的size
    var path = Path();
    path.lineTo(0, 0);//起始点
    path.lineTo(0, size.height - 30);//第二个点
    var controlPoint = Offset(size.width/2, size.height);//控制点
    var endPoint = Offset(size.width, size.height - 30);//结束点
    path.quadraticBezierTo(controlPoint.dx, controlPoint.dy, endPoint.dx, endPoint.dy);// 画了贝塞尔曲线
    path.lineTo(size.width, size.height - 30);//第三个点
    path.lineTo(size.width, 0);//第四个点
    return path;
    }

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

    //画曲线

     

    ClipPath

    clipper:xxx 重写的类

    child:

     

    画曲线 首先要继承 CustomClipper

     

    重写两个方法 

    1.getClip

    //初始化 线

         var path = Path();

    path.lineTo(x,y)  点相连

     

    path.quadraticBezierTo(x1,y1,x2,y2)//贝塞尔曲线 x1,y1 是控制点 x2,y2 结束点

     

     

    2.shouldReclip 返回flase

  • 相关阅读:
    HTML DOM 12 表格排序
    HTML DOM 10 常用场景
    HTML DOM 10 插入节点
    HTML DOM 09 替换节点
    HTML DOM 08 删除节点
    HTML DOM 07 创建节点
    022 注释
    024 数字类型
    005 基于面向对象设计一个简单的游戏
    021 花式赋值
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12193467.html
Copyright © 2011-2022 走看看