Canvas教程(3)——從線段開(kāi)始

怎么畫(huà)線段?

上一講我們已經(jīng)得到了咱們的畫(huà)布和畫(huà)筆昆稿,在發(fā)揮藝術(shù)家之魂前纺座,還是要像小孩牙牙學(xué)語(yǔ)一樣,我們也得從畫(huà)一條線段開(kāi)始溉潭。因?yàn)楫?huà)線段是最簡(jiǎn)單的净响,最基礎(chǔ)的。但是別小看了它喳瓣。下面是我從度娘那里找到的一個(gè)由線條組成的圖像馋贤。

線條組成的圖像

是不是很有魔性?

言歸正傳畏陕。怎么畫(huà)線條配乓?和現(xiàn)實(shí)中畫(huà)畫(huà)差不多:

  • 移動(dòng)畫(huà)筆,使畫(huà)筆移動(dòng)至繪畫(huà)的開(kāi)始處
  • 確定第一筆的停止點(diǎn)
  • 規(guī)劃好之后惠毁,選擇畫(huà)筆(包括畫(huà)筆的粗細(xì)和顏色等)
  • 確定繪制

因?yàn)?strong>Canvas是基于狀態(tài)的繪制(很重要犹芹,后面會(huì)解釋),所以前面幾步都是在確定狀態(tài)鞠绰,最后一步才會(huì)具體繪制腰埂。

移動(dòng)畫(huà)筆(moveTo())

之前我們獲得了畫(huà)筆context,所以以此為例洞豁,給出改方法的使用實(shí)例——context.moveTo(100,100)盐固。這句代碼的意思是移動(dòng)畫(huà)筆至(100,100)這個(gè)點(diǎn)(單位是px)。記住丈挟,這里是以canvas畫(huà)布的左上角為笛卡爾坐標(biāo)系的原點(diǎn)刁卜,且y軸的正方向向下,x軸的正方向向右曙咽。

筆畫(huà)停點(diǎn)(lineTo())

同理蛔趴,context.lineTo(600,600)。這句的意思是從上一筆的停止點(diǎn)繪制到(600,600)這里例朱。不過(guò)要清楚孝情,這里的moveTo()``lineTo()都只是狀態(tài)而已,是規(guī)劃洒嗤,是我準(zhǔn)備要畫(huà)箫荡,還沒(méi)有開(kāi)始畫(huà),只是一個(gè)計(jì)劃而已渔隶!

選擇畫(huà)筆

這里我們暫且只設(shè)置一下畫(huà)筆的顏色和粗細(xì)羔挡。

context.lineWidth = 5洁奈,這句話的意思是設(shè)置畫(huà)筆(線條)的粗細(xì)為10px。

context.strokeStyle = "#AA394C"绞灼,這句話的意思是設(shè)置畫(huà)筆(線條)的顏色為玫紅色利术。

因?yàn)镃anvas是基于狀態(tài)的繪制,所以我們?cè)谶x擇畫(huà)筆粗細(xì)和顏色的同時(shí)低矮,其實(shí)也是選擇了線條的粗細(xì)和顏色印叁。

確定繪制

確定繪制只有兩種方法,fill()stroke()军掂,有點(diǎn)繪畫(huà)基礎(chǔ)的應(yīng)該知道轮蜕,前者是指填充,后者是指描邊蝗锥。因?yàn)槲覀冎皇抢L制線條肠虽,所以只要描邊就可以了。調(diào)用代碼context.stroke()即可玛追。

畫(huà)一個(gè)線條

不就一條線段嗎税课!廢話了這么多!那我們就開(kāi)始畫(huà)吧痊剖。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>從線條開(kāi)始</title>
</head>
<body>
<div id="canvas-warp">
    <canvas id="canvas" style="border: 1px solid #aaaaaa; display: block; margin: 50px auto;">
        你的瀏覽器居然不支持Canvas韩玩?!趕快換一個(gè)吧B侥佟找颓!
    </canvas>
</div>

<script>
    window.onload = function(){
        var canvas = document.getElementById("canvas");
        canvas.width = 800;
        canvas.height = 600;
        var context = canvas.getContext("2d");

        context.moveTo(100,100);
        context.lineTo(600,600);
        context.lineWidth = 5;
        context.strokeStyle = "#AA394C";
        context.stroke();
    }
</script>
</body>
</html>

演示 3-1

運(yùn)行結(jié)果:

第一個(gè)線條

(一直有小伙伴問(wèn)我頁(yè)面右下角的熊是什么鬼?哦哦叮贩,之前忘解釋了击狮,那個(gè)是我的防偽水印益老!??)

我還標(biāo)注了一個(gè)頁(yè)面解析圖彪蓬,供大家參考。

標(biāo)注圖

這里我將原本<canvas>標(biāo)簽中的widthheight去掉了捺萌,但在JavaScript代碼中設(shè)置了canvas對(duì)象的widthheight的屬性档冬。

小結(jié):要設(shè)置畫(huà)布的大小,只有這兩種方法

  • <canvas>標(biāo)簽中設(shè)置桃纯;
  • 在JS代碼中設(shè)置canvas的屬性

怎么樣酷誓,是不是非常的酷。接下來(lái)我們要加快腳步了态坦,繪制一個(gè)多線條組成的圖形盐数。是不是感覺(jué)自己離藝術(shù)家又進(jìn)了一步呢?別看這只是簡(jiǎn)簡(jiǎn)單單的一條線段伞梯,這一畫(huà)只是我們的一小步玫氢,但卻是人類的一大步着茸!??


如果您喜歡本書(shū),請(qǐng)使用支付寶掃描下面的二維碼捐助作者琐旁。

二維碼

謝謝您的支持!也歡迎您訂閱本書(shū)猜绣。

如果書(shū)中有疏漏或錯(cuò)誤之處灰殴,敬請(qǐng)您指出,期待您的pull request掰邢。如果有任何疑問(wèn)也可以發(fā)送issue牺陶。

本人郵箱:airing@ursb.me

本人博客:http://ursb.me

本書(shū)地址:http://airingursb.gitbooks.io/canvas

本書(shū)github:http://github.com/airingursb/canvas

Canvas--Draw on the Web
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辣之,隨后出現(xiàn)的幾起案子掰伸,更是在濱河造成了極大的恐慌,老刑警劉巖怀估,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狮鸭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡多搀,警方通過(guò)查閱死者的電腦和手機(jī)歧蕉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)康铭,“玉大人惯退,你說(shuō)我怎么就攤上這事〈犹伲” “怎么了催跪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)夷野。 經(jīng)常有香客問(wèn)我懊蒸,道長(zhǎng),這世上最難降的妖魔是什么悯搔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任榛鼎,我火速辦了婚禮,結(jié)果婚禮上鳖孤,老公的妹妹穿的比我還像新娘者娱。我一直安慰自己,他們只是感情好苏揣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布黄鳍。 她就那樣靜靜地躺著,像睡著了一般平匈。 火紅的嫁衣襯著肌膚如雪框沟。 梳的紋絲不亂的頭發(fā)上藏古,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音忍燥,去河邊找鬼拧晕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梅垄,可吹牛的內(nèi)容都是我干的厂捞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼队丝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼靡馁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起机久,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤臭墨,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后膘盖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體胧弛,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年侠畔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叶圃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡践图,死狀恐怖掺冠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情码党,我是刑警寧澤德崭,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站揖盘,受9級(jí)特大地震影響眉厨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兽狭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一憾股、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箕慧,春花似錦服球、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至伐庭,卻和暖如春粉渠,著一層夾襖步出監(jiān)牢的瞬間分冈,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工霸株, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雕沉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓去件,卻偏偏與公主長(zhǎng)得像坡椒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箫攀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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