canvas?畫(huà)布

什么是canvas:

可以繪制及顯示內(nèi)容的 區(qū)域范圍

canvas的應(yīng)用面

1.美圖工具

2.美化拍照或者視頻畫(huà)面

3.做游戲

現(xiàn)成游戲引擎

白鷺引擎

cocoa-x

cocoa-creater

unity3d

微信小游戲

4.動(dòng)畫(huà)

教學(xué)

醫(yī)學(xué)

建筑

5.數(shù)據(jù)可視化

現(xiàn)成的數(shù)據(jù)可視化框架

three

echats

基本使用

顯示可以繪制及內(nèi)容的 標(biāo)簽 canvas

類似視頻標(biāo)簽 可以通過(guò)width皆愉、height的屬性來(lái)設(shè)置自己的寬高

默認(rèn)的寬高

width 300

height 150

可以通過(guò)CSS設(shè)置寬高 但是不要這么去使用蚂踊?

找同學(xué)解答

會(huì)把整個(gè)畫(huà)布 按照增加像素的比例 整體拉伸放大或者縮小

繪制的api

目標(biāo)

繪制一條線

人(context)

//2.獲取上下文對(duì)象(獲取畫(huà)畫(huà)的人)

let context = canvas.getContext("2d");

兩個(gè)點(diǎn)

移動(dòng)到某個(gè)點(diǎn)

//從左上角開(kāi)始畫(huà)

context.moveTo(0,0);

畫(huà)線到某個(gè)點(diǎn)

//畫(huà)到右下角

context.lineTo(1000,300);

繪制

//畫(huà)輪廓

context.stroke();

填充 fill()

設(shè)置一個(gè)整屏的畫(huà)布

//設(shè)置畫(huà)布是整屏的寬高

canvas.width = innerWidth;

canvas.height = innerHeight;

//onresize 當(dāng)窗口尺寸發(fā)生改變的方法

onresize = ()=>{

canvas.width = innerWidth;

canvas.height = innerHeight;

}

繪制一個(gè)三角形

描輪廓

繪制實(shí)心的三角形

畫(huà)有顏色的

設(shè)置繪制輪廓的顏色(樣式)

設(shè)置填充的顏色(樣式)

設(shè)置線的粗細(xì)

context.lineWidth = 5;

畫(huà)個(gè)矩形

填充的方式

fillRect(原點(diǎn)x,原點(diǎn)y,尺寸寬度女轿,尺寸的高度)

描邊的方式

strokeRect(原點(diǎn)x,原點(diǎn)y,尺寸寬度歌粥,尺寸的高度)

畫(huà)圓形或者不完全的圓形

//注意:畫(huà)扇形的時(shí)候一定要注意 確定起始點(diǎn)

context.moveTo(400,400);

context.arc(400,400,150,Math.PI/180*135,Math.PI/180*180);

(圓心x, y), (半徑radius), startAngle起始的弧度, endAngle結(jié)束的弧度, anticlockwise是否是反時(shí)針(默認(rèn)順時(shí)針)

兩切線之間的弧度

context.strokeStyle = "orange"

context.moveTo(50,10);

context.lineTo(300,100);

context.arcTo(550,320,200,400,150);

context.lineTo(300,500);

context.stroke();

通過(guò)貝塞爾曲線的方式 繪制有弧度的線條

// 通過(guò)貝塞爾曲線的方式 繪制有弧度的線條

context.strokeStyle = "orange"

context.moveTo(50,10);

//quadratic二次元

//(產(chǎn)生弧度的制高點(diǎn) px, cpy) (結(jié)

設(shè)置線條末端樣式lineCap

butt

線段末端以方形結(jié)束譬挚。

round

線段末端以圓形結(jié)束缠沈。

square

線段末端以方形結(jié)束攻锰,但是增加了一個(gè)寬度和線段相同揩魂,高度是線段厚度一半的矩形區(qū)域饲趋。

設(shè)定線條與線條間接合處的樣式lineJoin

round

通過(guò)填充一個(gè)額外的拐揭,圓心在相連部分末端的扇形撤蟆,繪制拐角的形狀。 圓角的半徑是線段的寬度堂污。

bevel

在相連部分的末端填充一個(gè)額外的以三角形為底的區(qū)域家肯, 每個(gè)部分都有各自獨(dú)立的矩形拐角。

miter

通過(guò)延伸相連部分的外邊緣盟猖,使其相交于一點(diǎn)讨衣,形成一個(gè)額外的菱形區(qū)域。這個(gè)設(shè)置可以通過(guò) miterLimit 屬性看到效果式镐。

繪制文字

描邊

strokeText

填充

fillText

要繪制的文字,x,y

保存canvas繪制的內(nèi)容 為圖片

1.把canvas里面的內(nèi)容轉(zhuǎn)換成URL

canvas.toDataURL("image/png") "image/jpg" "image/gif"

2.創(chuàng)建a標(biāo)簽 設(shè)置href及download 的值 為轉(zhuǎn)換好的URL

3.a.click()

let button = document.querySelector("button");

button.onclick = ()=>{

//保存畫(huà)布的內(nèi)容 為 圖片格式

let url = canvas.toDataURL("image/png");

let a = document.createElement("a");

a.download = url;

a.href = url;

a.click();

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末反镇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子娘汞,更是在濱河造成了極大的恐慌歹茶,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件你弦,死亡現(xiàn)場(chǎng)離奇詭異辆亏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)鳖目,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門扮叨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人领迈,你說(shuō)我怎么就攤上這事彻磁。” “怎么了狸捅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵衷蜓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我尘喝,道長(zhǎng)磁浇,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任朽褪,我火速辦了婚禮置吓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缔赠。我一直安慰自己衍锚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布嗤堰。 她就那樣靜靜地躺著戴质,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上告匠,一...
    開(kāi)封第一講書(shū)人閱讀 49,785評(píng)論 1 290
  • 那天戈抄,我揣著相機(jī)與錄音,去河邊找鬼后专。 笑死划鸽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的行贪。 我是一名探鬼主播漾稀,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼建瘫!你這毒婦竟也來(lái)了崭捍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤啰脚,失蹤者是張志新(化名)和其女友劉穎殷蛇,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體橄浓,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粒梦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荸实。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匀们。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖准给,靈堂內(nèi)的尸體忽然破棺而出泄朴,到底是詐尸還是另有隱情,我是刑警寧澤露氮,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布祖灰,位于F島的核電站,受9級(jí)特大地震影響畔规,放射性物質(zhì)發(fā)生泄漏局扶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一叁扫、第九天 我趴在偏房一處隱蔽的房頂上張望三妈。 院中可真熱鬧,春花似錦陌兑、人聲如沸沈跨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春软驰,著一層夾襖步出監(jiān)牢的瞬間涧窒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工锭亏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纠吴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓慧瘤,卻偏偏與公主長(zhǎng)得像戴已,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锅减,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 用于繪制圖像糖儡,本身不具備繪制能力,需要通過(guò)腳本來(lái)完成繪畫(huà)怔匣,通常這個(gè)腳本就是javascript canvas的默認(rèn)...
    于默k閱讀 188評(píng)論 0 4
  • canvas是定義狀態(tài)實(shí)現(xiàn)畫(huà)圖的 canvas中無(wú)px單位握联;畫(huà)直線:context.moveTo(100,200)...
    overisover閱讀 1,242評(píng)論 0 0
  • 一、簡(jiǎn)介 HTML5 中的定義:“它是依賴分辨率的位圖畫(huà)布每瞒,你可以在 canvas 上面繪制任何圖形金闽,甚至加載照片...
    destiny0904閱讀 10,521評(píng)論 1 4
  • 一、添加一個(gè) Canvas 1.布置畫(huà)布:通過(guò)添加<canvas>標(biāo)簽剿骨,添加canvas元素 Canvas在HTM...
    Lia代碼豬崽閱讀 2,201評(píng)論 0 3
  • canvas用途 游戲 小游戲 圖表 報(bào)表 如 Charts插件 炫酷效果 banner 模擬器代芜、圖形編輯器 等...
    飛魚(yú)_JS閱讀 944評(píng)論 0 2