亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html5 Canvas畫圖教程(9)―canvas中畫出矩形和圓形

2024-08-26 00:14:59
字體:
來源:轉載
供稿:網友
本文講一下在canvas中畫出矩形和圓形的辦法,他們屬于基礎圖形。當然,基礎圖形本來不止他們,但在canvas中,只有畫矩形與圓形不需要用其他方法模擬。

canvas畫矩形
1,fillRect與strokeRect
fillRect可以直接填充出一個矩形,填充樣式是你當前設置的樣式;同理strokeRect就是直接描邊一個矩形
他們的參數是一致的,依次是(起點x坐標,起點y,矩形的寬,矩形的高)。這里的起點,注意,是指矩形的左上角那個點。
我們通常用他們來做簡單的事,他們也只能做簡單的事。為什么?因為他們畫的圖形沒有“路徑”的說法,直接就出來了。
比如你先用fillRect填充了一個矩形,然后你想把這個矩形描邊,如果你使用stroke(),則不會有效果,因為此時雖然有個矩形,但并不存在路徑。
如果你迫切的想把這個矩形描邊,你可以在同樣的位置使用strokeRect()來描邊一個矩形——但他們其實是獨立的,只是位置重疊罷了。

復制代碼 代碼如下:www.CuoXIn.com

ctx.fillRect(200,100,50,40);
ctx.strokeRect(200,100,50,40);

如果我們想要一個又有填充又有描邊的矩形,那同時使用fillRect和strokeRect無疑顯得很累贅。所以這種情況我們通常使用以下方法。

2,rect
rect的參數與fillRect和strokeRect毫無差別,不同的是他畫出的只是路徑,至于描邊或是填充要你后續自己完成。

復制代碼 代碼如下:www.CuoXIn.com

ctx.rect(300,100,50,40);
ctx.stroke()
ctx.fill();

這樣做有什么好處呢?前面的文章我提到過,填充或描邊會消耗大量資源,所以我們經常(比如循環)需要一次性繪制幾百條路徑,再來描邊或填充。此時使用rect畫路徑,最后再填充,就避免了fillRect和strokeRec每次都要填充或描邊的問題。

3,lineTo
當然你也可以像我的畫線條的教程那樣,用4個lineTo來畫出一個矩形。但這毫無必要,具體可查看那篇文章。

Canvas畫圓形
蒼天無眼,其實canvas并沒有一個真正的可以直接畫出圓形的函數,他畫的其實是一個360度的圓弧,看起來就是個圓形了。
canvas畫圓弧的函數我們前面講過了,即arc.我們用他來畫一個圓形:

復制代碼 代碼如下:www.CuoXIn.com

ctx.arc(300+25,100+20,20,0,Math.PI*2);
ctx.stroke()
ctx.fill();

這個arc和rect一樣,畫出的也是路徑,填充或描邊需要后續完成。
但要注意的是,圓形的位置判斷和矩形是不一樣的。我們以矩形的左上角為起點確定他的位置,但圓形的位置我們通常用圓心來確定。
如果你想畫一組水平和垂直都居中的矩形與圓形,那你可要記得不要把矩形的起點當成了畫圓形的起點——圓形的起點可是圓心哈!
 
算了,我還是給你一個現在的公式吧,對齊的圓與矩形,圓心的坐標=矩形的坐標+矩形的一半寬高。
也就是圓心x=矩形x+矩形寬/2,圓形y=矩形y+矩形高/2。這樣他們就是絕對對齊了的。
雖然arc沒有直接畫圓的方法那么好用——我設想的直接畫圓的方法只需要3個參數,即圓心坐標即半徑——但arc不止可以畫圓,還可以畫半圓什么的,所以功能更強大,用著也將就了。
既然有圓,那么就應該有橢圓,但canvas中連一個正規的畫圓的函數都沒有,更別提橢圓了。所以畫橢圓必須用其他方法模擬,這個比較復雜,我留到后面講吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品中文字幕在线| 国产精品成人播放| 精品视频久久久久久久| 日本sm极度另类视频| 久久久久久久成人| 理论片在线不卡免费观看| 欧美寡妇偷汉性猛交| 日韩精品一二三四区| 日韩大片在线观看视频| 一区二区国产精品视频| 91精品久久久久久久久不口人| 国产性猛交xxxx免费看久久| 久久久噜噜噜久久久| 精品视频在线播放免| 国产精品久久久久久中文字| 一区二区亚洲欧洲国产日韩| 国产亚洲人成网站在线观看| 欧美性色19p| 欧美成人精品在线| 日韩资源在线观看| 91九色在线视频| 精品少妇一区二区30p| 精品欧美激情精品一区| 欧美专区在线视频| 欧美日韩亚洲91| 亚洲免费av网址| 久久久久久久久久久久av| 国产不卡av在线免费观看| 91成人精品网站| 精品久久久久久中文字幕一区奶水| 欧美电影免费观看| 国产精品第一视频| 91免费精品视频| 精品少妇v888av| 日本最新高清不卡中文字幕| 欧美日韩一区二区三区在线免费观看| 亚洲免费视频在线观看| 欧美日韩精品国产| 国产精品爽爽爽爽爽爽在线观看| 国产精品999| 91精品国产精品| 92国产精品视频| 日韩av免费看网站| 亚洲综合精品一区二区| 国产美女精品免费电影| 性夜试看影院91社区| 国产精品久久久91| 精品成人在线视频| www.亚洲天堂| 91久久精品国产| 国产狼人综合免费视频| 欧美性xxxx在线播放| 久久视频这里只有精品| 欧美风情在线观看| 成人久久一区二区| 欧美成人小视频| 日韩精品在线电影| 亚洲日本中文字幕| 日韩av成人在线| 欧美电影免费观看| 亚洲天堂2020| 欧美小视频在线观看| 日韩av一区在线观看| 亚洲精品福利在线观看| 精品久久在线播放| 欧美精品免费播放| 成人免费福利视频| 在线观看日韩视频| 综合欧美国产视频二区| 久操成人在线视频| 欧美麻豆久久久久久中文| 亚洲成人国产精品| 国产成人一区二区三区| 国内精品小视频在线观看| 自拍偷拍免费精品| 韩国视频理论视频久久| 欧美理论片在线观看| 一道本无吗dⅴd在线播放一区| 亚洲伊人久久综合| 亚洲精品免费一区二区三区| 欧美区在线播放| 韩国日本不卡在线| 欧美黑人巨大xxx极品| 亚洲欧美综合图区| 亚洲第一网中文字幕| 日本成人精品在线| 国产精品偷伦视频免费观看国产| 久久五月情影视| 国产日韩欧美91| 91精品久久久久久久久久久| 久久久www成人免费精品| 久久久久久久久久久久久久久久久久av| 日韩精品黄色网| 亚洲人成电影网站色…| 欧美成年人视频网站欧美| 色悠悠久久久久| 成人国产精品久久久久久亚洲| 久久久久久久一区二区三区| 国产在线98福利播放视频| 日韩在线高清视频| 亚洲大胆人体视频| 亚洲国产高清高潮精品美女| 亚洲综合大片69999| 日韩精品一二三四区| 欧美日韩电影在线观看| 91久久嫩草影院一区二区| 国产91精品久久久久久久| 成人精品在线观看| 久久免费国产精品1| 久热爱精品视频线路一| 国产脚交av在线一区二区| 国产欧美一区二区三区久久人妖| 国产精品一区二区三区毛片淫片| 日韩免费观看在线观看| 国产一区二区三区在线免费观看| 中文字幕日韩综合av| 韩国日本不卡在线| 国产精品久久久久久久久久ktv| www.国产精品一二区| 一本大道久久加勒比香蕉| 成人黄色免费片| 国产成人免费av| 俺也去精品视频在线观看| 精品国产乱码久久久久久虫虫漫画| 国产91精品视频在线观看| 九九热这里只有精品6| 日韩精品免费电影| 亚洲品质视频自拍网| 欧美日韩成人黄色| 亚洲色在线视频| 国产精品中文字幕久久久| 欧美精品午夜视频| 97久久精品人搡人人玩| 性亚洲最疯狂xxxx高清| 久久伊人91精品综合网站| 国产视频精品久久久| 亚洲欧美日韩精品久久奇米色影视| 亚洲精品欧美日韩| 国产精品亚洲片夜色在线| 国产97在线亚洲| 国产美女搞久久| 久久精品中文字幕| 日韩一区二区精品视频| 国产在线观看精品| 国内精品模特av私拍在线观看| 亚洲网站视频福利| 伊人伊成久久人综合网站| 精品五月天久久| 91久久综合亚洲鲁鲁五月天| 亚洲黄色www网站| 亚洲欧美日韩在线高清直播| 成人网页在线免费观看| 日韩欧美在线免费观看| 亚洲日本成人女熟在线观看| 欧美日韩中文在线观看| 久久精品一区中文字幕| 久久亚洲精品成人| 欧美日韩国产第一页| 日本久久久久久久久久久| 欧美成人精品不卡视频在线观看| 亚洲欧美综合区自拍另类| 成人欧美一区二区三区黑人孕妇| 国产精品丝袜久久久久久不卡| 尤物九九久久国产精品的特点|