canvas介紹及API

繪制矩形

fillRect(x,y,width,height)

繪制一個填充的矩形

strokeRect(x,y,width,height)

繪制一個矩形的邊框

clearRect(x,y,width,height)

清除制定矩形區(qū)域蛛壳,讓清除部分完全透明

上述中參數(shù)(x,y)指定了在畫布上矩形的左上角(相對于原點)的坐標妹萨,width和height設置矩形的尺寸


繪制路徑

1.首先荒给,你需要創(chuàng)建路徑起始點细睡。

2.然后你使用畫圖命令去畫出路徑钝诚。

3.之后你把路徑封閉铣焊。

4.一旦路徑生成俏让,你就能通過描邊或填充路徑區(qū)域來渲染圖形桦他。

beginPath()

新建一條路徑,生成之后霹期,圖形繪制命令被指向到路徑上生成路徑叶组。

注意:當前路徑為空,即調(diào)用beginPath()之后历造,或者canvas剛建的時候甩十,第一條路徑構造命令通常被視為是moveTo(),無論最后的是什么吭产。出于這個原因侣监,你幾乎總是要在設置路徑之后專門指定你的起始位置。

moveTo(x,y)

將筆觸移動到指定的坐標x以及y上臣淤。

lineTo(x, y)

繪制一條從當前位置到指定x以及y位置的直線橄霉。

closePath()

閉合路徑之后圖形繪制命令又重新指向到上下文中。

stroke()

通過線條來繪制圖形輪廓邑蒋。

fill()

通過填充路徑的內(nèi)容區(qū)域生成實心的圖形姓蜂。


繪制圓或圓弧

arc(x, y, radius, startAngle, endAngle, anticlockwise)

畫一個以(x,y)為圓心的以radius為半徑的圓弧(圓)医吊,從startAngle開始到endAngle結束钱慢,按照anticlockwise給定的方向(默認為順時針)來生成。

注意:arc()函數(shù)中的角度單位是弧度卿堂,不是度數(shù)束莫。角度與弧度的js表達式:radians=(Math.PI/180)*degrees。

arcTo(x1, y1, x2, y2, radius)?? // 用的不多

根據(jù)給定的控制點和半徑畫一段圓弧草描,再以直線連接兩個控制點览绿。


二次貝塞爾曲線及三次貝塞爾曲線

quadraticCurveTo(cp1x, cp1y, x, y)

繪制二次貝塞爾曲線,cp1x,cp1y為一個控制點陶珠,x,y為結束點挟裂。

bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

繪制三次貝塞爾曲線,cp1x,cp1y為控制點一揍诽,cp2x,cp2y為控制點二诀蓉,x,y為結束點栗竖。


Path2D對象

Path2D()

Path2D()會返回一個新初始化的Path2D對象(可能將某一個路徑作為變量——創(chuàng)建一個它的副本,或者將一個包含SVG path數(shù)據(jù)的字符串作為變量)渠啤。

newPath2D();// 空的Path對象

newPath2D(path);// 克隆Path對象

newPath2D(d);// 從SVG建立Path對象

Path2D.addPath(path [, transform])?

添加了一條路徑到當前路徑(可能添加了一個變換矩陣)狐肢。

示例

function draw(){

???????????? var canvas = document.getElementById("canvas");

???????????? if(canvas.getContext){

?????????????????? var ctx = canvas.getContext('2d');

?????????????????? var rectangle = new Path2D(); // 創(chuàng)建Path2D對象

?????????????????? rectangle.rect(10,10,50,50);

? ? ? ? ? ? ? ? ? ? var circle= new Path2D(); // 創(chuàng)建Path2D對象

??????????????????? circle.moveTo(125,35);

??????????????????? circle.arc(100,35,25,0,2*Math.PI)

??????????????????? ctx.stroke(rectangle);

??????????????????? ctx.fill(circle);

?????????????? }

}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沥曹,隨后出現(xiàn)的幾起案子份名,更是在濱河造成了極大的恐慌,老刑警劉巖妓美,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件僵腺,死亡現(xiàn)場離奇詭異,居然都是意外死亡壶栋,警方通過查閱死者的電腦和手機辰如,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贵试,“玉大人琉兜,你說我怎么就攤上這事”胁#” “怎么了豌蟋?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長桑滩。 經(jīng)常有香客問我梧疲,道長,這世上最難降的妖魔是什么施符? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任往声,我火速辦了婚禮,結果婚禮上戳吝,老公的妹妹穿的比我還像新娘。我一直安慰自己贯涎,他們只是感情好听哭,可當我...
    茶點故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著塘雳,像睡著了一般陆盘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上败明,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天隘马,我揣著相機與錄音,去河邊找鬼妻顶。 笑死酸员,一個胖子當著我的面吹牛蜒车,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播幔嗦,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼酿愧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邀泉?” 一聲冷哼從身側響起嬉挡,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汇恤,沒想到半個月后庞钢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡因谎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年焊夸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓝角。...
    茶點故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡阱穗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出使鹅,到底是詐尸還是另有隱情揪阶,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布患朱,位于F島的核電站鲁僚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏裁厅。R本人自食惡果不足惜冰沙,卻給世界環(huán)境...
    茶點故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望执虹。 院中可真熱鬧拓挥,春花似錦、人聲如沸袋励。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茬故。三九已至盖灸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磺芭,已是汗流浹背赁炎。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钾腺,地道東北人徙垫。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓讥裤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親松邪。 傳聞我的和親對象是個殘疾皇子坞琴,可洞房花燭夜當晚...
    茶點故事閱讀 43,566評論 2 349

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