canvas lineWidth为1时线条粗细和颜色
来源:互联网 发布:40岁女人护肤品知乎 编辑:程序博客网 时间:2024/06/10 20:37
今天在使用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个像素。画出来的线段如下:
0 0
- canvas lineWidth为1时线条粗细和颜色
- Highcharts制作图片表设置线条颜色和粗细
- Highcharts制作图片表设置线条颜色和粗细
- 关于.NET报表中图表控件线条颜色和粗细设置
- Echarts3通过ajax动态获取数据,30秒定时图表数据,设置图表线条颜色和粗细
- HTML5 Canvas里绘制椭圆并保持线条粗细均匀的方法
- Canvas基础1-绘制基本图形和线条
- python画图:线条和颜色
- 视图边框颜色和粗细,圆角
- Android 设置edittext光标颜色和粗细
- Canvas---Canvas版画图、虚线、辅助线、线条颜色、线条宽度,整合加强版
- MATLAB设置坐标轴线条粗细
- canvas-线条
- Gnuplot设置线条颜色为黑色
- canvas画圆和线条动画
- 如何利用颜色和线条让表格更有魅力以奖金分配表为例
- Matlab绘图颜色和线条属性
- 网站页面的颜色和线条搭配
- win8.1系统中迅雷看看闪退问题
- 圣杯布局
- Linux网络编程之多播
- postgreSQL Linux命令行操作学习
- hdu 5058 set应用
- canvas lineWidth为1时线条粗细和颜色
- HDU 1565 方格取数(1)(状压dp)
- N!知多少?
- hdu 5056 所有字母数都<=k的子串数目
- @QueryParam和@PathParam使用方法比较
- 形式化验证技术
- Python笔试题目:求最大的K个数子,解法一,最快速实现的方法
- 软工第二,三章总结
- nyist mdd的烦恼 欧拉函数