今天在使用html5的canvas时碰到了一个问题: 当设置lineWidth为1, strokeStyle为'#000'时,画出来的线段和lineWidth为2画出来的线段差不多粗。如下

代码如下:

<!DOCTYPE html>
<html><head><title>Canvas</title><style>canvas {border: 1px solid pink;}</style></head><body><canvas width="500" height="300" id="mycanvas"></canvas></body><script type="text/javascript">var mycanvas = document.getElementById('mycanvas');var ctx = mycanvas.getContext('2d');ctx.lineWidth = 1;ctx.strokeStyle = '#000';drawLine(ctx, 10, 10, 100, 10);ctx.lineWidth = 2;drawLine(ctx, 10, 20, 100, 20);function drawLine(ctx, startX, startY, endX, endY) {ctx.beginPath();ctx.moveTo(startX, startY);ctx.lineTo(endX, endY);ctx.stroke();ctx.closePath();}</script>
</html>

要解决这个问题,我们可以这样做:

<!DOCTYPE html>
<html><head><title>Canvas</title><style>canvas {border: 1px solid pink;}</style></head><body><canvas width="500" height="300" id="mycanvas"></canvas></body><script type="text/javascript">var mycanvas = document.getElementById('mycanvas');var ctx = mycanvas.getContext('2d');ctx.lineWidth = 1;ctx.strokeStyle = '#000';<span style="color:#ff0000;">ctx.translate(0.5, 0.5);</span>drawLine(ctx, 10, 10, 100, 10);ctx.lineWidth = 2;<span style="color:#ff0000;">ctx.translate(-0.5, -0.5);</span>drawLine(ctx, 10, 20, 100, 20);function drawLine(ctx, startX, startY, endX, endY) {ctx.beginPath();ctx.moveTo(startX, startY);ctx.lineTo(endX, endY);ctx.stroke();ctx.closePath();}</script>
</html>

当lineWidth为奇数时 在选区的坐标上加上0.5个像素。画出来的线段如下:

canvas lineWidth为1时线条粗细和颜色相关推荐

  1. uni-app - 电子签字板组件(签名专用写字画板,支持调整写字板 “横纵“ 方向,可调整线条粗细颜色等,Canvas 绘制非常丝滑流畅)完美兼容 H5 APP 小程序,最好用的画板签字教程插件源码

    前言 网上的教程代码非常乱且都有 BUG 存在,非常难移植到自己的项目中,本文代码干净整洁注释详细. 本文实现了 全端兼容,签名专用的写字板组件,真机流畅丝滑且无 BUG, 您直接复制组件源码,按照详 ...

  2. canvas实现画板功能——选择颜色、线条粗细、橡皮擦、撤销等功能

    最近在看canvas画板的部分,正好看到一个案例是关于canvas画板的,在此做下记录. 此案例是采用面向对象的编程思想,具体表现形式就是:js部分是一个对象,对象里面是一些变量和方法. html部分 ...

  3. php网页画线,HTML5 canvas基本绘图之绘制线条

    是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTML5 canvas基本绘图之绘制线条方法,感兴趣的小伙伴们可以参考一下 是HTML5中新增的标签,用于绘制图形,实际上,这个标 ...

  4. 路径图形html5 Canvas画图2:画线条 -java教程

    空话就不多说了,开始... 如果你还不道知Canvas是什么,可以看看上一篇. 在学画画的时候,线条是最基本的了,而线条的接连可以成组任何图形.在Canvas中也是如此. 在开始之前我们先拿出画布和画 ...

  5. ai css 线条粗细_如何训练AI将您的设计模型转换为HTML和CSS

    ai css 线条粗细 by Emil Wallner 埃米尔·沃尔纳(Emil Wallner) 如何训练AI将您的设计模型转换为HTML和CSS (How you can train an AI ...

  6. WPF4文字模糊不清晰、边框线条粗细不一致的解决方法

    原文:WPF4文字模糊不清晰.边框线条粗细不一致的解决方法 软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲 经过实践,发现按下面方法能解决一点问题: 在窗口 ...

  7. 解决html中表格线条粗细不一的问题

    我们再html中使用原生的table时,为了美观往往会通过改变td的border来改变表格边框的样式,但是通常会处出现边框线条粗细不一的问题,下面代码解决了该问题 table {border-coll ...

  8. cad怎么设置线的粗细_CAD图纸线条粗细如何修改?CAD图纸线宽如何调整?

    在使用autocad软件绘图时,有时需要通过线条粗细来进行线条的区分,此时就要懂得如何设置线条的粗细,那么如何修改CAD图纸的线条粗细呢?线条粗细设置失败后应该怎么办?下面小编就为大家详细介绍一下,一 ...

  9. cad线加粗怎么设置_CAD图纸线条粗细如何修改?CAD图纸线宽如何调整?

    在使用autocad软件绘图时,有时需要通过线条粗细来进行线条的区分,此时就要懂得如何设置线条的粗细,那么如何修改CAD图纸的线条粗细呢?线条粗细设置失败后应该怎么办?下面小编就为大家详细介绍一下,一 ...

  10. R语言可视化包ggplot2包调整线条粗细实战(Adjust Line Thickness)

    R语言可视化包ggplot2包调整线条粗细实战(Adjust Line Thickness) 目录 R语言可视化包ggplot2包调整线条粗细实战(Adjust Line Thickness)

最新文章

  1. php获取会员数据代码,php将会员数据导入到ucenter的代码
  2. MPLS的几种备份方式——Vecloud
  3. 转载ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
  4. Preserve Whole Object(保持对象完整)
  5. 网站登录入口| 网站收录入口| 网站登录大全
  6. C++之 把字符串作为宏参数
  7. js java 代码格式化_JS代码格式化
  8. sonyxz2刷机教程,日版au刷欧版
  9. mysql脏数据_mysql的刷脏
  10. ios addressbook
  11. 如何深入编辑优化SPSS的统计图表——属性优化
  12. arcgis通俗易懂教程(一)------入门教程
  13. python nonetype_理解Python中的NoneType对象
  14. 【Flutter】【 package】底部导航栏--bottom_navy_bar
  15. 浅谈华为如何实现区块链的安全隐私保护
  16. 75个顶级开源安全应用
  17. 千里之行始于足下,Python编写进度条
  18. 阿里3年被裁,赔偿n+3,到手30多万!感谢阿里让我人生开挂!
  19. 【如何投资股票】什么时候应当满仓?什么时候空仓?
  20. selenium+python上传文件(Button按钮)

热门文章

  1. 获取上个月第一天和最后一天
  2. 06 第五章 一阶逻辑等值演算与推理
  3. 根据域名查询IP地址的网站推荐
  4. 【教学类-12-08】20221111《连连看竖版6*6 (3套题目空心图案(中班教学)》(中班主题《》)
  5. 【二〇二一·立春】读书笔记
  6. 基于Android NFC的门票系统
  7. 申请SSL证书,并给域名配置SSL证书,并部署服务器;SSL证书的下载和安装
  8. 服务器IP为什么会被封,以及解决办法
  9. html灯箱效果代码,WordPress纯代码实现图片灯箱lightbox效果
  10. 年终工作总结目录结构和要点