久久久久久久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響應式(自適應)網頁設計的實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 国产午夜精品福利 | 精品一区久久 | 成人免费毛片嘿嘿连载视频 | 欧美另类视频 | 亚洲香蕉视频 | 久久久少妇 | 精品一区二区免费视频 | 亚洲精品视频在线播放 | 日日干干 | 激情视频一区 | 亚洲小视频在线观看 | 韩日中文字幕 | 91成人亚洲 | 免费看黄色av | 国产精品6 | 在线一区二区三区 | 国产精品黄色 | 天天天天干| 99精品久久久久久 | 日韩一二区 | 亚洲成人动漫在线观看 | 国产日韩欧美在线 | 亚洲精品视频在线观看免费 | 亚洲欧美精品在线 | 天天操夜夜撸 | 高清免费av | 亚洲视频精品 | www一级片 | 午夜精品久久 | 色婷婷久久久 | 欧美视频一区二区三区 | 国产伦理一区二区 | 亚洲天堂网在线观看 | 国产视频www | 国产精品区二区三区日本 | 日韩午夜片 | 视频一区二区三区在线观看 | 青青草在线免费视频 | 成人黄色小视频 | 婷婷狠狠| 国产成人精品三级麻豆 |