国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > HTML > 正文

HTML5 canvas基本繪圖之繪制曲線

2020-03-24 17:39:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
canvas /canvas 是HTML5中新增的標(biāo)簽,用于繪制圖形,實(shí)際上,這個(gè)標(biāo)簽和其他的標(biāo)簽一樣,其特殊之處在于該標(biāo)簽可以獲取一個(gè)CanvasRenderingContext2D對(duì)象,我們可以通過(guò)JavaScript腳本來(lái)控制該對(duì)象進(jìn)行繪圖。 canvas /canvas 只是一個(gè)繪制圖形的容器,除了id、html' target='_blank'>class、style等屬性外,還有height和width屬性。在 canvas 元素上繪圖主要有三步: 1.獲取 canvas 元素對(duì)應(yīng)的DOM對(duì)象,這是一個(gè)Canvas對(duì)象;
2.調(diào)用Canvas對(duì)象的getContext()方法,得到一個(gè)CanvasRenderingContext2D對(duì)象;
3.調(diào)用CanvasRenderingContext2D對(duì)象進(jìn)行繪圖。繪制曲線跟繪制曲線的有四個(gè)函數(shù),分別是: context.arc(x,y,r,sAngle,eAngle,counterclockwise);用于創(chuàng)建弧/曲線(用于創(chuàng)建圓或部分圓)。接收的參數(shù)含義:
| 參數(shù) | 含義 |
| : - |: -|
| x | 圓的中心的 x 坐標(biāo) |
|y|圓的中心的 y 坐標(biāo)|
|r|圓的半徑|
|sAngle|起始角,以弧度計(jì)(弧的圓形的三點(diǎn)鐘位置是 0 度)|
|eAngle|結(jié)束角,以弧度計(jì)|
|counterclockwise|可選。規(guī)定應(yīng)該逆時(shí)針還是順時(shí)針繪圖。False = 順時(shí)針,true = 逆時(shí)針| 下面是幾個(gè)arc()函數(shù)的幾個(gè)示例:JavaScript Code復(fù)制內(nèi)容到剪貼板
varcanvas=document.getElementById( canvas ); varcontext=canvas.getContext( 2d ); context.strokeStyle= #F22D0D ; context.lineWidth= 2 ; //繪制圓 context.beginPath(); context.arc(100,100,40,0,2*Math.PI); context.stroke(); //繪制半圓 context.beginPath(); context.arc(200,100,40,0,Math.PI); context.stroke(); //繪制半圓,逆時(shí)針 context.beginPath(); context.arc(300,100,40,0,Math.PI,true); context.stroke(); //繪制封閉半圓 context.beginPath(); context.arc(400,100,40,0,Math.PI); context.closePath(); context.stroke();
context.arcTo(x1,y1,x2,y2,r); 在畫布上創(chuàng)建介于兩個(gè)切線之間的弧/曲線。接收的參數(shù)含義:這里需要注意的是arcTo函數(shù)繪制的曲線的起始點(diǎn)需要通過(guò)moveTo()函數(shù)來(lái)設(shè)置,下面利用arcTo函數(shù)繪制一個(gè)圓角矩形:JavaScript Code復(fù)制內(nèi)容到剪貼板
functioncreateRoundRect(context,x1,y1,width,height,radius) { //移動(dòng)到左上角 context.moveTo(x1+radius,y1); //添加一條連接到右上角的線段 context.lineTo(x1+width-radius,y1); //添加一段圓弧 context.arcTo(x1+width,y1,x1+width,y1+radius,radius); //添加一條連接到右下角的線段 context.lineTo(x1+width,y1+height-radius); //添加一段圓弧 context.arcTo(x1+width,y1+height,x1+width-radius,y1+height,radius); //添加一條連接到左下角的線段 context.lineTo(x1+radius,y1+height); //添加一段圓弧 context.arcTo(x1,y1+height,x1,y1+height-radius,radius); //添加一條連接到左上角的線段 context.lineTo(x1,y1+radius); //添加一段圓弧 context.arcTo(x1,y1,x1+radius,y1,radius); context.closePath(); } //獲取canvas元素對(duì)應(yīng)的DOM對(duì)象 varcanvas=document.getElementById('mc'); //獲取在canvas上繪圖的CanvasRenderingContext2D對(duì)象 varcontext=canvas.getContext('2d'); context.lineWidth=3; context.strokeStyle= #F9230B ; createRoundRect(context,30,30,400,200,50); context.stroke();
曲線的開(kāi)始點(diǎn)是當(dāng)前路徑中最后一個(gè)點(diǎn)。如果路徑不存在,那么請(qǐng)使用 beginPath() 和 moveTo() 方法來(lái)定義開(kāi)始點(diǎn)。 context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y); 繪制三次貝塞爾曲線,參數(shù)如下:以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持phpstudy。html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 上犹县| 嘉定区| 金沙县| 长兴县| 乐陵市| 岢岚县| 淮滨县| 仪征市| 竹山县| 刚察县| 镇赉县| 西畴县| 肃北| 微山县| 尼玛县| 沐川县| 武鸣县| 美姑县| 攀枝花市| 鹤壁市| 洪泽县| 保亭| 大港区| 清涧县| 诸城市| 庆阳市| 鱼台县| 甘谷县| 靖江市| 遂川县| 乌鲁木齐市| 山东省| 和田县| 友谊县| 威海市| 弋阳县| 福海县| 安仁县| 平遥县| 泾阳县| 兰溪市|