canvas簡述

1. 繪制三角形

fill是填充面(實心),stroke是畫線(空心)
    <script type="text/javascript">
        //首先,找到 <canvas> 元素:
        var canvas = document.getElementById('myCanvas');
        //然后,創建 context 對象:
        //getContext("2d") 對象是內建的 HTML5 對象,
        //擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。
        var context = canvas.getContext('2d');
        
        //canvas 是一個二維網格。
        //canvas 的左上角坐標為 (0,0)
        context.beginPath();
        //moveTo(x,y) 定義線條開始坐標
        context.moveTo(0,0);
        //lineTo(x,y) 定義線條結束坐標
        //繪制三角形
        context.lineTo(0,100);
        context.lineTo(100,100);
        context.lineTo(0,0)
        context.strokeStyle = "#0000FF";
        context.stroke();
//      context.lineWidth = 10;
//      context.fillStyle = "#008000";
//      context.fill();

2. 畫圓

lineCap:線帽 有三個參數
  • butt 默認。向線條的每個末端添加平直的邊緣。
  • round 向線條的每個末端添加圓形線帽。
  • square 向線條的每個末端添加正方形線帽。
context.arc(參數1,參數2,參數3,參數4,參數5,參數6);
  • 參數1 參數2 圓形原點的坐標
  • 參數3 半徑
  • 參數4 繪制圓形的起始角度
  • 參數5 繪制圓形的結束角度
  • 參數6 順時針 | 逆時針 參數是布爾:true 逆時針,false 順時針
    context.arc(200,100,100,0,Math.PI,false);
        //畫圓 
        context.beginPath(); // 重新開啟一個新的圖層
        context.arc(200,100,100,0,Math.PI,false);
        context.lineCap = "round";
        context.lineWidth = 15;
        context.strokeStyle = "aquamarine";
        context.stroke();

3. 矩形

context.rect(參數1,參數2,參數3,參數4);
  • 參數1 ,參數2 矩形繪制的起點位置(參數1為X軸的坐標,參數2為Y軸的坐標)
  • 參數3,矩形的寬
  • 參數4矩形的高
創建線條漸變 context.createLinearGradient(參數1,參數2,參數3,參數4);
  • 參數1 ,參數2 漸變顏色開始的位置(參數1為X軸的坐標,參數2為Y軸的坐標)
  • 參數3,參數4 漸變顏色結束的位置(參數3為X軸的坐標,參數4為Y軸的坐標)
grd.addColorStop(參數1,參數2);
  • 參數1 ,0~1之間的數
  • 參數3,參數4 顏色
        //矩形
        context.beginPath();
        context.rect(0,200,200,100);
        var grd = context.createLinearGradient(0,200,200,200);
        grd.addColorStop(0,"red");
        grd.addColorStop(0.5,"green");
        grd.addColorStop(1,"blue");
        context.fillStyle = grd;
        context.fill();
創建一個徑向/圓漸變 context.createRadialGradient(xStart, yStart,radiusStart,xEnd, yEnd,radiusEnd);

-xStart, yStart 開始圓的圓心的坐標。
-radiusStart 開始圓的半徑。
-xEnd, yEnd 結束圓的圓心的坐標。
-radiusEnd 結束圓的半徑。

        context.beginPath();
        context.rect(0,200,200,100);
        var grd = context.createRadialGradient(200,200,50,200,200,200);
        grd.addColorStop(0,"red");
        grd.addColorStop(0.5,"green");
        grd.addColorStop(1,"blue");
        context.fillStyle = grd;
        context.fill();

4. 文本

  • font - 定義字體
  • fillText(text,x,y) - 在 canvas 上繪制實心的文本
  • strokeText(text,x,y) - 在 canvas 上繪制空心的文本
  • context.textBaseline 垂直對齊方式
  • context.textAlign 水平對齊方式
        // bold 可以省略   Arial 不可以省略
        context.font = "bold 50px Arial";
        context.textBaseline = "middle";
        context.textAlign = "center";
        var grd = context.createLinearGradient(0,0,200,0);
        grd.addColorStop(0,"blue");
        grd.addColorStop(0.5,"yellow");
        grd.addColorStop(1,"red");
        context.fillStyle = grd; 
        context.fillText("hello",100,100);
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,250評論 6 530
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,923評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,041評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,475評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,253評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,801評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,882評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,023評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,530評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,494評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,639評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,177評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,890評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,289評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,552評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,242評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,626評論 2 370

推薦閱讀更多精彩內容

  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標簽 ②:HTML5 ...
    GreenHand1閱讀 4,702評論 2 32
  • --繪圖與濾鏡全面解析 概述 在iOS中可以很容易的開發出絢麗的界面效果,一方面得益于成功系統的設計,另一方面得益...
    韓七夏閱讀 2,747評論 2 10
  • 熟悉html5的程序員們肯定都知道 元素,該元素是用來在頁面中規定一塊區域,然后由js在該區域內繪制圖形。canv...
    米幾V閱讀 2,176評論 1 5
  • 一、基礎介紹和畫直線 大多數現代瀏覽器都是支持Canvas的,比如 Firefox, safari, chrome...
    空谷悠閱讀 852評論 0 1
  • 本章內容 理解 元素 繪制簡單的 2D 圖形 使用 WebGL 繪制 3D 圖形 這個元素負責在頁面中設定一個區域...
    悶油瓶小張閱讀 856評論 0 0