Html5中Canvas画线有毛边怎么办
这篇文章给大家分享的是有关Html5中Canvas画线有毛边怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Html5 Canvas 所有的画线指令画出来的线条都有毛边(比如 lineTo, arcTo,strokeRect),这是因为在Canvas中整数坐标值对应的位置恰巧是屏幕象素点中间的夹缝,那么当按这样的坐标进行线条渲染时所要用到的就是夹缝两边的象素点,这样即便设置了lineWidth为1也将看到两个象素效果的线条,解决方法原象素点+0.5进行偏移。
下面是处理前后的效果比较:
canvasTest varMyCanvas=function(boxObj,width,height){ //序号、计数 this.index=arguments.callee.prototype.Count=(arguments.callee.prototype.Count||0)+1; varcvs=document.createElement("canvas"); cvs.id="myCanvas"+this.index; cvs.width=width||800; cvs.height=height||600; (boxObj||document.body).appendChild(cvs); //excanvas框架中针对ie加载canvas延时问题手动初始化对象 if(typeofG_vmlCanvasManager!="undefined")G_vmlCanvasManager.initElement(cvs); //2D画布对象 this.ctx=cvs.getContext("2d"); /**绘制线条 *@opsJSON对象,可按实际支持属性扩展,示例:{lineWidth:1,strokeStyle:'rgb(255,255,255)'} *@dotXY:{x:0,y:0}||[{x:0,y:0},{x:0,y:0}] */ this.drawLine=function(dotXY,ops){ this.ctx.beginPath(); for(varattinops)this.ctx[att]=ops[att]; dotXY=dotXY.constructor==Object?[dotXY||{x:0,y:0}]:dotXY; this.ctx.moveTo(dotXY[0].x,dotXY[0].y); for(vari=1,len=dotXY.length;i ↓处理的 ↓普通的 ↓+0.5偏移的
感谢各位的阅读!关于“Html5中Canvas画线有毛边怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
推荐阅读
-
html5中video不支持的格式是什么
html5中video不支持的格式是什么这篇“html5中vide...
-
html5会不会被淘汰
html5会不会被淘汰这篇文章主要介绍“html5会不会被淘汰”的...
-
IE开始支持HTML5的版本是什么
IE开始支持HTML5的版本是什么本篇内容主要讲解“IE开始支持H...
-
youtube html5播放失败如何解决
youtubehtml5播放失败如何解决本篇内容主要讲解“you...
-
html5 input禁止输入如何实现
html5input禁止输入如何实现这篇“html5input...
-
html5中的base怎么使用
html5中的base怎么使用这篇文章主要介绍“html5中的ba...
-
html5 date样式如何修改
html5date样式如何修改这篇“html5date样式如何...
-
html5的含义是什么
html5的含义是什么这篇文章主要介绍“html5的含义是什么”的...
-
HTML5如何实现禁止android视频另存为
HTML5如何实现禁止android视频另存为今天小编给大家分享一...
-
html5如何实现隐藏剩余显示内容
html5如何实现隐藏剩余显示内容这篇“html5如何实现隐藏剩余...