久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

HTML5 Canvas畫線技巧――實現繪制一個像素寬的細

HTML5 Canvas畫線技巧――實現繪制一個像素寬的細線_html5教程技巧HTML5中文學習網,是中國最大的HTML5中文門戶,為廣大HTML5愛好者提供各種HTML5資料,包括HTML5網站、HTML5資訊、HTML5應用、
點評:繪制一個像素寬的細線,在使用HTML5 Canvas實現時要特別注意確保你的所有坐標點是整數,否則HTML5會自動實現邊緣反鋸齒,感興趣的朋友可以看下效果圖
正統的HTML5 Canvas中如下代碼

復制代碼
代碼如下:

ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(10, 100);
ctx.lineTo(300,100);
ctx.stroke();

運行結果繪制出來的并不是一個像素寬度的線

感覺怎么好粗啊,跟常常見到的網頁版各種繪制線效果

很不一樣,難道HTML5 Canvas就沒想到搞好點嘛

其實這個根本原因在于Canvas的繪制不是從中間開始的

而是從0~1,不是從0.5~1 + 0~0.5的繪制方式,所以

導致fade在邊緣,看上去線很寬。

解決方法有兩個,一個是錯位覆蓋法,另外一種是中心

平移(0.5,0.5)。實現代碼如下:

錯位覆蓋法我已經包裝成一個原始context的函數

復制代碼
代碼如下:

/**
* <p> draw one pixel line </p>
* @param fromX
* @param formY
* @param toX
* @param toY
* @param backgroundColor - default is white
* @param vertical - boolean
*/
CanvasRenderingContext2D.prototype.onePixelLineTo = function(fromX, fromY, toX, toY, backgroundColor, vertical) {
var currentStrokeStyle = this.strokeStyle;
this.beginPath();
this.moveTo(fromX, fromY);
this.lineTo(toX, toY);
this.closePath();
this.lineWidth=2;
this.stroke();
this.beginPath();
if(vertical) {
this.moveTo(fromX+1, fromY);
this.lineTo(toX+1, toY);
} else {
this.moveTo(fromX, fromY+1);
this.lineTo(toX, toY+1);
}
this.closePath();
this.lineWidth=2;
this.strokeStyle=backgroundColor;
this.stroke();
this.strokeStyle = currentStrokeStyle;
};

中心平移法代碼如下:

復制代碼
代碼如下:

ctx.save();
ctx.translate(0.5,0.5);
ctx.lineWidth = 1;
ctx.beginPath();
ctx.moveTo(10, 100);
ctx.lineTo(300,100);
ctx.stroke();
ctx.restore();

要特別注意確保你的所有坐標點是整數,否則HTML5會自動實現邊緣反鋸齒

又導致你的一個像素直線看上去變粗了。

運行效果:

現在效果怎么樣,這個就是HTML5 Canvas畫線的一個小技巧

覺得不錯請頂一下。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了有關HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現柱狀圖的示例,本文使用canvas來實現一個圖表,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產品線較多,涵蓋了音視頻編輯、圖像處理、平面設計、影視后期等領域。這篇文章主要介紹了Adobe Html5 Extension開發初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了html5實現移動端適配完美寫法,需要的朋友可以參考下
本篇文章主要介紹了HTML5響應式(自適應)網頁設計的實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 成人在线精品视频 | 国产精品成人国产乱一区 | 成人免费观看网站 | 国产精品夜夜春夜夜爽久久电影 | 亚洲精品视频在线观看视频 | av一区二区三区在线观看 | 欧美成人免费电影 | 久久久久久久一区二区三区 | 九九久视频 | 久久www免费视频 | 日本在线中文 | 正在播放国产精品 | 国产欧美精品一区二区 | 日韩一区二区在线播放 | 国产精品久久国产精品 | 国产精品日日做人人爱 | 精品国产91 | 成人毛片网 | 一区二区三区欧美在线 | 久久亚洲精品国产精品紫薇 | 日韩欧美在线不卡 | 国产一级片免费在线观看 | 国产精品久久99 | 欧美精品福利视频 | 天天射网站| 男女那个视频 | 欧美日韩国产一区二区三区不卡 | 日韩精品一区二区三区 | 四虎av电影| 国产综合久久 | 91一区二区| 亚洲草草视频 | 精品欧美乱码久久久久久 | 亚洲第一视频网站 | 欧美日本韩国一区二区三区 | 992tv人人草| 国产精久久久久久久妇剪断 | 不卡在线视频 | 国产一区二区久久 | 久久精品免费观看 | 日韩精品1区2区3区 爱爱综合网 |