美文网首页
用canvas画虚线

用canvas画虚线

作者: stois | 来源:发表于2016-01-12 11:41 被阅读3872次

今天的任务是用canvas画小时候练字用的田字格,一般的田字格是虚线。
事先知道canvas里有setLineDash这么个api,测试结果是,
ios统统画的出,android里的chrome画的出,android里的微信浏览器画不出。于是否定掉。

下面是用原生的api将虚线一段段的按照实线的方式画出,源自夜之子的博客:

function drawDashLine(ctx, x1, y1, x2, y2, dashLength){
      var dashLen = dashLength === undefined ? 5 : dashLength,
      xpos = x2 - x1, //得到横向的宽度;
      ypos = y2 - y1, //得到纵向的高度;
      numDashes = Math.floor(Math.sqrt(xpos * xpos + ypos * ypos) / dashLen); 
      //利用正切获取斜边的长度除以虚线长度,得到要分为多少段;
      for(var i=0; i<numDashes; i++){
         if(i % 2 === 0){
             ctx.moveTo(x1 + (xpos/numDashes) * i, y1 + (ypos/numDashes) * i); 
             //有了横向宽度和多少段,得出每一段是多长,起点 + 每段长度 * i = 要绘制的起点;
          }else{
              ctx.lineTo(x1 + (xpos/numDashes) * i, y1 + (ypos/numDashes) * i);
          }
       }
      ctx.stroke();
    }

野性十足的原生。

相关文章

  • 用canvas画虚线

    今天的任务是用canvas画小时候练字用的田字格,一般的田字格是虚线。事先知道canvas里有setLineDas...

  • 。虚线。?。画。?。懂吗。?。

    。把。该。用。虚线。?。画。?。的。用。虚线。?。画。?。懂吗。?。 。这是。清理。?。大脑。?。的。重点。?。懂...

  • android用shape画虚线,怎么也不显示

    原文地址:android用shape画虚线,怎么也不显示 一直以为android的shape能画直线,虚线,矩形,...

  • iOS绘图------虚线的画法

    在项目中, 有两个地方用到了画虚线 虚线标注某个点 虚线画按钮边框 两种方法不同, 第一个是用贝塞尔曲线来画, 第...

  • iOS -- 绘制虚线

    虚线标注某个点 虚线画按钮边框 两种方法不同, 第一个是用贝塞尔曲线来画, 第二个是用CAShapeLayer来画...

  • canvas绘制虚线,虚线方框,虚线圆

    canvas没有提供绘制虚线的api,我们可以通过moveTo,和lineTo来实现绘制虚线的需求。思路是将一整条...

  • 自定义view实现虚线

    自定义一个类继承View,在onDraw方法中画虚线,虚线用DashPathEffect实现 再附上attrs文件

  • canvas虚线绘制

    概述 晚上闲来无事,又不想看书,就写代码段锻炼一下脑子。本示例实现canva绘制虚线,因为canvas原生没有的。...

  • 四年级上

    1.作图题题上要求画的线用实线,题目中没要求画的辅助线用虚线

  • HTML5中canvas使用

    1、Canvas基础 2、Canvas画直线 3、Canvas画矩形 4、Canvas画文字 5、Canvas画圆...

网友评论

      本文标题:用canvas画虚线

      本文链接:https://www.haomeiwen.com/subject/nwfckttx.html