前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Canvas绘制平行线以及解决直线模糊问题

Canvas绘制平行线以及解决直线模糊问题

作者头像
Devops海洋的渔夫
发布2019-10-13 15:10:03
1.5K0
发布2019-10-13 15:10:03
举报
文章被收录于专栏:Devops专栏Devops专栏

绘画Canvas的平行线

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        canvas{
            border: 1px solid #cccccc;
            margin-top: 100px;
            margin-left: 100px;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            /*获取元素*/
            var myCanvas = document.querySelector('#myCanvas');
            /*获取绘图工具*/
            var context = myCanvas.getContext('2d');

            /*绘制第一条线*/
            /*设置绘图的起始位置*/
            context.moveTo(100,100);
            /*绘制路径*/
            context.lineTo(200,100);

            /*绘制第二条线*/
            /*设置绘图的起始位置*/
            context.moveTo(100,200);
            /*绘制路径*/
            context.lineTo(200,200);
            
            /*描边*/
            context.stroke();
        }
    </script>
</head>
<body>
    <canvas id="myCanvas" width="400" height="300"></canvas>
</body>
</html>

浏览器显示如下:

可以从上图看到已经绘画出了两条直线作为平行线。但是有以下两个问题:

  • 绘制的直线默认宽度为多少? 从对比边框border的1px来看,直线看上去有2px的宽度。其实这个直线的绘制宽度默认也只有1px,那么怎么会看起来有2px呢?
  • 绘制的直线默认颜色是什么? 直接看上去直线的颜色像是灰色。但是其实默认的颜色是黑色。那么怎么看起来像是灰色呢?

直线模糊以及黑色变灰色的问题原理

其实在绘制直线的时候,默认是绘制1px的宽度,但是绘制直线的中轴线位置是在坐标轴刻度的上,如下:

另外因为两边的线宽度都被强行扩展,这样就导致黑色扩展变为了灰色。

解决模糊问题的方法

只要偏移直线中轴线位置不在刻度上就可以了,如下图:

那么下面将平行线的其中一条进行偏移看看,代码如下:

在y轴的方向进行偏移0.5px,浏览器显示如下:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.10.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 绘画Canvas的平行线
  • 直线模糊以及黑色变灰色的问题原理
  • 解决模糊问题的方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档