Flutter 绘制虚线

Flutter 没有自带的虚线绘制工具,需要自己绘制,下面提供一个方法来绘制吧,可以作为Paint的扩展,也可以直接用这个方法绘制。上代码。

Dart 复制代码
void dashPaint(
      Canvas canvas, startdx, startdy, enddx,enddy, dashWidth, gapWidth, Paint paint) {
    // 使用循环来模拟虚线效果
// dashWidth 虚线的宽度,gapWidth的宽度, start起点坐标,end终点坐标
    double currentX = startdx;
    double currentY = startdy;
    double d= sqrt((enddx- startdx)*(enddx- startdx)+(enddy- startdy)*(enddy- startdy)); //计算线段长度
    // sin
    double sin = (enddy - startdy) /d;
    double cos = (enddx - startdx) /d;
    while ((sin>0&&currentY < enddy) ||(sin<0&&currentY > enddy)){
      canvas.drawLine(
        Offset(currentX, currentY),
        Offset(currentX+ dashWidth* cos, currentY + dashWidth * sin ),
        paint,
      );
      currentX += (dashWidth + gapWidth)* cos;
      currentY += (dashWidth + gapWidth)* sin;
    }
  }
相关推荐
未脱发程序员16 分钟前
分享一款开源的图片去重软件 ImageContrastTools,基于Electron和hash算法
前端·javascript·electron
程序猿阿伟27 分钟前
《让歌声跨越山海:Flutter借助Agora SDK实现高质量连麦合唱》
flutter
草莓熊Lotso1 小时前
【C语言指针超详解(三)】--数组名的理解,一维数组传参的本质,冒泡排序,二级指针,指针数组
c语言·开发语言·经验分享·笔记
geovindu1 小时前
vue3: pdf.js 2.16.105 using typescript
javascript·vue.js·typescript·pdf
Blossom.1181 小时前
使用Python和TensorFlow实现图像分类的人工智能应用
开发语言·人工智能·python·深度学习·安全·机器学习·tensorflow
CodeWithMe2 小时前
【C/C++】C++中noexcept的妙用与性能提升
c语言·开发语言·c++
非著名架构师2 小时前
C++跨平台开发实践:深入解析与常见问题处理指南
开发语言·c++
越来越无动于衷2 小时前
JAVA多态——向上转型
java·开发语言
鱼嘻2 小时前
线程邮箱框架与示例
linux·c语言·开发语言·算法·php
cooldream20092 小时前
有状态服务、无状态服务与Session机制详解
java·开发语言·系统架构师