中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

html5 Canvas畫圖教程(4)—未閉合的路徑及漸變色的填充方法
來源:易賢網(wǎng) 閱讀:2242 次 日期:2016-07-23 13:48:05
溫馨提示:易賢網(wǎng)小編為您整理了“html5 Canvas畫圖教程(4)—未閉合的路徑及漸變色的填充方法”,方便廣大網(wǎng)友查閱!

一般繪圖的方式有兩種,即填充和描邊,前面的文章已經(jīng)講了描邊的方法stroke,本文就講一下Canvas中填充圖形的方法。

填充即fill(),很直白吧?而且和strokeStyle表示描邊樣式一樣,fillStyle即表示填充樣式。

ctx.fillStyle = '顏色';默認(rèn)的填充樣式是不透明的黑色

提問:未閉合的路徑可以填充嗎?

可以。Canvas會(huì)從你當(dāng)前路徑的終點(diǎn)直接連接到起點(diǎn),然后填充。如圖:

名單

但你可以發(fā)現(xiàn),最后一段沒有描邊。

記得我們前一篇文章用4條線畫了一個(gè)正方形,但canvas不會(huì)這么差勁,連直接繪制矩形的函數(shù)都沒有。你可以使用fillRect()直接填充一個(gè)矩形:

代碼如下:

ctx.fillRect(x,y,width,height);

這里的x,y是指矩形的左上角起點(diǎn)的坐標(biāo),記住。

說到fillRect,就不得不提strokeRect,你猜對(duì)了,他的意思就是直接描邊出一個(gè)矩形。

還有fillText與strokeText,至于作用嘛,你可能都猜到了,我這里先不講,大家先預(yù)習(xí)吧。

Canvas填充漸變色

在Canvas中,漸變色同樣分為兩種,即線性漸變和徑向漸變,而且創(chuàng)建他們的方法也是獨(dú)立的。我們先看如何創(chuàng)建線性漸變。

創(chuàng)建線性漸變=createLinearGradient——看,依然很直接的單詞。他的語法如下:

createLinearGradient(x1,y1,x2,y2)有4個(gè)參數(shù)呢!看起來好復(fù)雜,其實(shí)這個(gè)挺簡(jiǎn)單的,因?yàn)槲覀兦懊嬉呀?jīng)說了,平面世界里的一個(gè)點(diǎn)是由x坐標(biāo)和y坐標(biāo)確定的。所以,x1,y1就是表示線性漸變的起點(diǎn)坐標(biāo),x2,y2就表示終點(diǎn)坐標(biāo)。

這樣做的好處很明顯,如果我們想創(chuàng)建一個(gè)斜著的線性漸變,很方便。但我們先創(chuàng)建一個(gè)水平的線性漸變?cè)囋嚢伞?/P>

var linear = ctx.createLinearGradient(100,100,200,100);漸變好像創(chuàng)建了,那么我們可以填充了嗎?————這個(gè)漸變是空的,沒有顏色。

往漸變條里加顏色的方法是addColorStop(位置,顏色).但要注意了,這個(gè)addColorStop不是加在畫筆上,而是加在前面的那個(gè)保存漸變的變量上,我這里是linear.

代碼如下:

var linear = ctx.createLinearGradient(100,100,200,100);

linear.addColorStop(0,'#fff');

linear.addColorStop(0.5,'#f0f');

linear.addColorStop(1,'#333');

我這里用了3個(gè)addColorStop,即為漸變條加上了3個(gè)顏色。

注意:addColorStop的位置參數(shù),永遠(yuǎn)是介于0-1之間的數(shù)字,可以是兩位小數(shù),表示百分比。他沒法接收’3px’這樣的參數(shù)。

這時(shí)候,我們就可以填充漸變色了,但我們必須先把定義好的漸變賦給fillStyle.

代碼如下:

var linear = ctx.createLinearGradient(100,100,200,100);

linear.addColorStop(0,'#fff');

linear.addColorStop(0.5,'#f0f');

linear.addColorStop(1,'#333');

ctx.fillStyle = linear; //把漸變賦給填充樣式

ctx.fillRect(100,100,100,100);

ctx.stroke();

名單

注意,fillRect與strokeRect畫出的都是獨(dú)立的路徑,如上面的代碼,在fillRect后調(diào)用描邊,并不會(huì)把剛剛畫出的矩形描邊,strokeRect同理。

經(jīng)過測(cè)試后,發(fā)現(xiàn)了一個(gè)很蛋疼的問題,就是線性漸變的坐標(biāo)是相對(duì)于整個(gè)Canvas范圍而言的。比如我這里,我的線性漸變起點(diǎn)就是100,100,如果我畫了一個(gè)矩形在0,0的位置,用這個(gè)漸變來填充,就會(huì)發(fā)現(xiàn)沒有填充——因?yàn)槲业臐u變的范圍根本就超過了矩形的范圍。

這真是一個(gè)坑爹的設(shè)定。

提問:漸變起點(diǎn)之前與漸變終點(diǎn)之后還會(huì)填充顏色嗎?

會(huì)。起點(diǎn)之前的顏色就是起點(diǎn)色,終點(diǎn)之后的顏色一直是終點(diǎn)色。

如何終止終點(diǎn)色,你可以在結(jié)束色之后再填一個(gè)透明的結(jié)束色。如:

代碼如下:

linear.addColorStop(0.99,'#333');

linear.addColorStop(1,'rgba(51,51,51,0)');

依照前面的計(jì)劃,我再建一個(gè)傾斜的線性漸變?cè)囋嚒V恍枰腸reateLinearGradient的參數(shù)即可.

代碼如下:

var linear = ctx.createLinearGradient(100,100,200,200);

效果如圖:

名單

然后,讓我們來試試徑向漸變(圓形漸變)。與createLinearGradient類似,創(chuàng)建徑向漸變的方法是:createRadialGradient,但他們的參數(shù)可大不相同:

createRadialGradient(x1,y1,r1,x2,y2,r2)其中的x1,y1,x2,y2依舊表示起點(diǎn)和終點(diǎn),不過這里的起點(diǎn)和終點(diǎn)都是一個(gè)圓,而x,y則是圓心的坐標(biāo)。所以,r1與r2分別是起點(diǎn)圓的半徑和終點(diǎn)圓的半徑。如圖:

名單

在我的印象中,貌似徑向漸變就是一個(gè)圓,圓心就是起點(diǎn),圓的半徑就是終點(diǎn)。但canvas里面的徑向漸變竟然搞的不一樣了,起點(diǎn)一個(gè)圓,終點(diǎn)一個(gè)圓,和我的理解有差距。

我們從最簡(jiǎn)單的做起。首先,做一個(gè)很正規(guī)的徑向漸變,即漸變圓形的圓心就是漸變的起點(diǎn)。由于正規(guī)的徑向漸變,中心即圓心,所以我們應(yīng)該盡量避免發(fā)生偏斜。那么,我們把終點(diǎn)圓的圓心與起點(diǎn)圓的圓心重合吧?

代碼如下:

var radial = ctx.createRadialGradient(55,55,10,55,55,55); //重合的圓心坐標(biāo)

radial.addColorStop(0,'#fff');

radial.addColorStop(0.5,'#ff0');

radial.addColorStop(0.9,'#555');

radial.addColorStop(1,'#f00');

名單

這里我設(shè)置的徑向漸變起點(diǎn)圓和終點(diǎn)圓的圓心坐標(biāo)相同,而起點(diǎn)圓半徑為10,終點(diǎn)圓半徑為55.最后畫出的徑向漸變范圍是一個(gè)寬高110的圓形,說明漸變范圍以終點(diǎn)圓的范圍為準(zhǔn)。

(可以看到終點(diǎn)圓范圍之外還是有顏色,這個(gè)顏色就是終點(diǎn)色,但是,如果你企圖使用radial.addColorStop(1.5,’#0f0′);這樣來定義漸變范圍之外的顏色,你還是會(huì)收到一個(gè)錯(cuò)誤).

那么,起點(diǎn)圓的半徑有什么用呢?——本來正常的徑向漸變的中心(姑且稱之為“變心”…吧)只是一個(gè)點(diǎn),不應(yīng)該是一個(gè)圓的。其實(shí)我們沒錯(cuò),這個(gè)起點(diǎn)圓就相當(dāng)于一個(gè)圓點(diǎn)而已,只是可能比較大。

讓我們把起點(diǎn)圓的半徑變得很大,接近于終點(diǎn)圓的半徑:

代碼如下:

var radial = ctx.createRadialGradient(55,55,50,55,55,55); //很接近

其他的colorStop都不變,然后圖形就變成了這個(gè)樣子。

名單

也就是說,canvas中徑向漸變的起點(diǎn)色,是從起點(diǎn)圓的范圍之外繪制的,而起點(diǎn)圓的整個(gè)顏色都是起點(diǎn)色。

我們把起點(diǎn)圓的半徑設(shè)為0,那徑向漸變的“變心”,就真的是一個(gè)點(diǎn)了。

大部分時(shí)候我們都不需要很正規(guī)的徑向漸變,反而希望他的變心是偏移的,類似下圖:

名單

這個(gè)時(shí)候,canvas徑向漸變兩個(gè)圓的優(yōu)勢(shì)就出來了,只要我們起點(diǎn)圓與終點(diǎn)圓的圓心不重合,那變心也就會(huì)偏移:

var radial = ctx.createRadialGradient(75,75,0,55,55,55);但此時(shí)的漸變范圍依然是終點(diǎn)圓的范圍哈。

很多人天生就有一種搞破壞的心理,比如這里,終點(diǎn)圓的半徑總比起點(diǎn)圓大,但如果把他們反過來會(huì)怎么樣呢?

代碼如下:

var radial = ctx.createRadialGradient(75,75,55,55,55,0);

經(jīng)測(cè)試,這樣不會(huì)報(bào)錯(cuò),只是原來的從內(nèi)到外的漸變反過來變成了從外到內(nèi)的漸變了。這是個(gè)好用法。

名單

還有個(gè)問題,如果我們把起點(diǎn)圓的圓心偏移了,并且起點(diǎn)圓的范圍超出了終點(diǎn)圓的范圍,

名單

這時(shí)會(huì)發(fā)生什么?

名單

這是什么情況?!

當(dāng)起點(diǎn)圓和終點(diǎn)圓只有部分重疊的時(shí)候,就會(huì)出現(xiàn)這種情況。所以,如果你需要正常的徑向漸變,請(qǐng)保證其中一個(gè)圓完全包住了另一個(gè)圓。

另外,既然漸變可以賦給fillStyle,那么也可以賦給strokeStyle。效果你懂的。

更多信息請(qǐng)查看網(wǎng)頁制作
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲第一中文字幕| 亚洲国产婷婷| 狠狠色伊人亚洲综合网站色| 久久精品国产欧美激情| 国产一区自拍视频| 免费日韩精品中文字幕视频在线| 亚洲第一毛片| 欧美香蕉大胸在线视频观看| 久久国产精品高清| 99精品国产福利在线观看免费| 国产精品高精视频免费| 久久精品一区| 亚洲一级二级| 在线不卡欧美| 国产精品一区在线观看| 免费人成精品欧美精品| 亚洲欧美中文日韩v在线观看| 在线看欧美视频| 国产精品久久久久7777婷婷| 欧美午夜在线一二页| 国产一区二区三区四区三区四| 亚洲在线日韩| 欧美mv日韩mv国产网站app| 久久综合色天天久久综合图片| 久久久久一区| 国产精品综合| 欧美日韩伊人| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲主播在线观看| 在线观看国产日韩| 国产日韩欧美一区二区三区在线观看 | 亚洲精品黄色| 久久国产精品99国产精| 欧美日韩一区二区精品| 亚洲国产精品一区二区www在线| 欧美视频免费| 国产亚洲欧美日韩一区二区| 日韩视频在线免费| 午夜精品www| 欧美日韩精品一二三区| 在线观看视频欧美| 欧美日韩在线播放| 免费日韩成人| 欧美成人激情视频| 免费欧美网站| 免费视频久久| 欧美1区3d| 模特精品在线| 另类酷文…触手系列精品集v1小说| 欧美一区网站| 亚洲尤物精选| 亚洲欧美国内爽妇网| 亚洲永久字幕| 午夜国产精品视频| 亚洲视频www| 亚洲女人天堂av| 欧美一区二区三区四区在线 | **欧美日韩vr在线| 在线观看视频一区| 亚洲第一天堂av| 国产日韩综合一区二区性色av| 国产精品国产三级国产专播品爱网| 欧美日韩一区二区精品| 欧美日本一区二区三区 | 国产精品成人一区二区三区夜夜夜| 欧美日本网站| 国产精品久久久久91| 黄页网站一区| 久久精品九九| 亚洲欧美日韩高清| 日韩视频中文字幕| 在线精品福利| 国产亚洲一区二区三区| 欧美日韩一卡二卡| 国产视频精品xxxx| 欧美性大战久久久久| 国产午夜亚洲精品羞羞网站 | 亚洲国产欧美在线人成| 亚洲激情在线观看视频免费| 国产日韩亚洲| 国产精品久久久久久久7电影| 免费观看国产成人| 久久在线免费观看视频| 欧美伊久线香蕉线新在线| 亚洲色诱最新| 一区二区三区欧美在线| 日韩一区二区高清| 亚洲免费高清视频| 亚洲国产一区二区三区高清| 黑人一区二区| 狠狠色综合网| 国语自产在线不卡| 国产日本欧美在线观看| 国产精品国产三级国产专区53| 欧美日韩精品一区二区三区四区| 欧美电影免费观看高清完整版| 久久婷婷国产麻豆91天堂| 久久国产加勒比精品无码| 欧美专区中文字幕| 久久精品国产99精品国产亚洲性色 | 久久一区二区三区超碰国产精品| 一本色道久久综合精品竹菊 | 亚洲一区中文| 宅男噜噜噜66国产日韩在线观看| 亚洲欧洲综合另类| 亚洲国产精品成人一区二区 | 欧美成人情趣视频| 久久综合色播五月| 久久人人爽人人爽爽久久| 久久成人精品| 久久另类ts人妖一区二区| 美女精品国产| 欧美高清免费| 欧美久久视频| 国产精品自拍网站| 黄色一区二区三区四区| 亚洲国产精品久久久久| 宅男噜噜噜66一区二区| 欧美综合国产| 欧美jizzhd精品欧美巨大免费| 欧美精品福利在线| 国产精品美女久久久久久免费 | 免费一级欧美在线大片| 牛人盗摄一区二区三区视频| 欧美日韩成人在线观看| 国产精品一区在线播放| 亚洲第一精品福利| 9久草视频在线视频精品| 欧美伊久线香蕉线新在线| 欧美国产激情二区三区| 国产伦精品一区二区三区免费迷 | 狠狠综合久久av一区二区小说| 亚洲大片av| 亚洲欧美日韩中文在线制服| 欧美18av| 国内精品久久久| 一区二区三区欧美激情| 久久久水蜜桃| 国产精品久久久久久久久借妻 | 国产精品家教| 激情亚洲一区二区三区四区| 一区二区福利| 美女诱惑一区| 国产伦精品一区二区三| 日韩午夜在线播放| 欧美精品一区二区三区在线看午夜| 欧美精品七区| 国产亚洲毛片| 亚洲私人影院| 欧美伦理影院| 狠狠色丁香久久综合频道| 亚洲一区二区三区四区五区黄 | 亚洲一区久久| 美女爽到呻吟久久久久| 国产乱码精品一区二区三区不卡 | 国产精品高潮呻吟| 亚洲国产精品va在线看黑人动漫| 午夜在线视频一区二区区别| 欧美三级黄美女| 亚洲精品资源| 六月婷婷久久| 最新国产乱人伦偷精品免费网站| 久久九九全国免费精品观看| 国产亚洲欧美另类一区二区三区| 一区二区激情小说| 欧美女同视频| 亚洲理伦在线| 欧美日韩综合在线免费观看| 一本色道久久综合亚洲精品高清 | 老**午夜毛片一区二区三区| 国产欧美在线视频| 亚洲一区亚洲| 国产精品手机在线| 中文在线资源观看网站视频免费不卡 | 亚洲福利视频一区二区| 夜夜嗨av一区二区三区网站四季av | 亚洲人成绝费网站色www| 久久国产视频网| 精品不卡一区二区三区| 香港久久久电影| 国产精品稀缺呦系列在线| 亚洲一区二区在| 国产欧美欧美| 久久久综合免费视频| 在线欧美亚洲| 欧美激情视频在线免费观看 欧美视频免费一 | 99pao成人国产永久免费视频| 欧美理论电影在线播放| 99成人精品| 国产精品资源在线观看| 久久精品国产视频| 在线视频国内自拍亚洲视频| 米奇777超碰欧美日韩亚洲| 亚洲人成网站999久久久综合| 欧美日韩免费在线观看| 性欧美暴力猛交69hd| 在线日本欧美| 国产精品男人爽免费视频1| 久久国产精品一区二区三区四区| 激情久久久久久久|