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

首頁 > 編程 > HTML > 正文

通過HTML5 Canvas API繪制弧線和圓形的教程

2020-03-24 17:10:26
字體:
來源:轉載
供稿:網友
html5中,CanvasRenderingContext2D對象也提供了專門用于繪制圓形或弧線的方法,請參考以下屬性和方法介紹:JavaScript Code復制內容到剪貼板
在canvas畫布上繪制以坐標點(x,y)為圓心、半徑為radius的圓上的一段弧線。這段弧線的起始弧度是startRad,結束弧度是endRad。這里的弧度是以x軸正方向(時鐘三點鐘)為基準、進行順時針旋轉的角度來計算的。anticlockwise表示是以逆時針方向還是順時針方向開始繪制,如果為true則表示逆時針,如果為false則表示順時針。anticlockwise參數是可選的,默認為false,即順時針。
arc()方法中的弧度計算方式
JavaScript Code復制內容到剪貼板
這個方法將利用當前端點、端點1(x1,y1)和端點2(x2,y2)這三個點所形成的夾角,然后繪制一段與夾角的兩邊相切并且半徑為radius的圓上的弧線。一般情況下,繪制弧線的開始位置是當前端點,結束位置是端點2,并且弧線繪制的方向就是連接這兩個端點的最短圓弧的方向。此外,如果當前端點不在所指定的圓上,本方法還將繪制一條從當前端點到弧線起點的直線。
由于詳細介紹arcTo()方法的篇幅較多,請移步至這里查看arcTo()的詳細用法。在了解了canvas繪制弧線的上述API之后,我們就一起來看看如何使用arc()繪制弧線。我們已經知道,arc()接收的第4個和第5個參數表示繪制弧線的開始弧度和結束弧度。相信各位讀者在學校的數學或幾何課程上都學過弧度,弧度是一種角度單位。弧長等于半徑的弧,其所對的圓心角就是1弧度。我們還知道,半徑為r的圓,其周長為2 r。在具備這些幾何知識的前提下,我們就可以使用arc()方法繪制弧線了。使用canvas繪制弧線現在,我們就來繪制一條半徑為50px的圓的1/4弧線。JavaScript Code復制內容到剪貼板
!--添加canvas標簽,并加上紅色邊框以便于在頁面上查看-- canvasid= myCanvas width= 400px height= 300px >對應的顯示效果如下圖:
使用canvas沿著順時針方向繪制弧線
如上所示,我們設置了繪制的弧線的所在圓的圓心坐標為(100,100),半徑為50px。由于一個半徑為r的圓的周長為2 r,也就是說,一個完整的圓,其所對應的弧度為2 (換算成常規角度就是360 ),所以我們想要畫一個圓的1/4弧線,只要弧度為 /2(即90 )就可以了。在上面的代碼中,我們使用了JavaScript中表示 的常量Math.PI。此外,在上面的代碼中,我們還設置了繪制弧線的方向為順時針方向(false)。由于起始弧度為0,結束弧度為 /2,因此弧線將從x軸的正方向開始沿著順時針方向繪制,從而得到上面的圖形。如果我們將上述代碼中的弧線繪制方向改為逆時針,會有什么樣的效果呢?JavaScript Code復制內容到剪貼板
//獲取Canvas對象(畫布) varcanvas=document.getElementById( myCanvas ); //簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤 if(canvas.getContext){ //獲取對應的CanvasRenderingContext2D對象(畫筆) varctx=canvas.getContext( 2d ); //開始一個新的繪制路徑 ctx.beginPath(); //設置弧線的顏色為藍色 ctx.strokeStyle= blue ; varcircle={ x:100,//圓心的x軸坐標值 y:100,//圓心的y軸坐標值 r:50//圓的半徑 }; //沿著坐標點(100,100)為圓心、半徑為50px的圓的逆時針方向繪制弧線 ctx.arc(circle.x,circle.y,circle.r,0,Math.PI/2,true); //按照指定的路徑繪制弧線 ctx.stroke(); } /script

使用canvas繪制圓形當我們學會了繪制弧線之后,舉一反三,我們想要繪制圓形自然也不在話下,只需要將上述代碼的結束弧度改為2 即可。JavaScript Code復制內容到剪貼板
//獲取Canvas對象(畫布) varcanvas=document.getElementById( myCanvas ); //簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤 if(canvas.getContext){ //獲取對應的CanvasRenderingContext2D對象(畫筆) varctx=canvas.getContext( 2d ); //開始一個新的繪制路徑 ctx.beginPath(); //設置弧線的顏色為藍色 ctx.strokeStyle= blue ; varcircle={ x:100,//圓心的x軸坐標值 y:100,//圓心的y軸坐標值 r:50//圓的半徑 }; //以canvas中的坐標點(100,100)為圓心,繪制一個半徑為50px的圓形 ctx.arc(circle.x,circle.y,circle.r,0,Math.PI*2,true); //按照指定的路徑繪制弧線 ctx.stroke(); } /script
//獲取Canvas對象(畫布) varcanvas=document.getElementById( myCanvas ); //簡單地檢測當前瀏覽器是否支持Canvas對象,以免在一些不支持html5的瀏覽器中提示語法錯誤 if(canvas.getContext){ //獲取對應的CanvasRenderingContext2D對象(畫筆) varctx=canvas.getContext( 2d ); //開始一個新的繪制路徑 ctx.beginPath(); //設置弧線的顏色為藍色 ctx.strokeStyle= blue ; varcircle={ x:100,//圓心的x軸坐標值 y:100,//圓心的y軸坐標值 r:50//圓的半徑 }; //以canvas中的坐標點(100,100)為圓心,繪制一個半徑為50px的圓形 ctx.arc(circle.x,circle.y,circle.r,0,Math.PI*2,true); //按照指定的路徑繪制弧線 ctx.stroke(); } /script
備注:arc()方法中的起始弧度參數startRad和結束弧度參數endRad都是以弧度為單位,即使你填入一個數字,例如360,仍然會被看作是360弧度。將上述代碼的結束弧度設為360會產生什么用的后果呢?這就要看繪制的方向了(即anticlockwise參數的值),如果是順時針繪制(false),則將繪制出一個完整的圓形;如果是逆時針繪制,大于2 的弧度將被轉換為一個弧度相等、但不大于2 的弧度。例如,將上述代碼中的結束弧度設為3 (Math.PI * 3),如果anticlockwise為false,將會顯示為一個完整的圓形,如果為true,則其顯示效果與設為 時的顯示效果一致。
結束弧度設為3 時,順時針(false)旋轉的繪制效果
結束弧度設為3 時,逆時針(true)旋轉的繪制效果html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博爱县| 张家港市| 灵台县| 西乡县| 万全县| 宜宾市| 高邑县| 莎车县| 沛县| 金门县| 平武县| 黄大仙区| 和硕县| 黎平县| 平舆县| 涡阳县| 安新县| 千阳县| 陵川县| 庆城县| 华宁县| 昭觉县| 通化市| 清远市| 蒲城县| 庆阳市| 类乌齐县| 麟游县| 廊坊市| 淮阳县| 如东县| 嘉义市| 紫金县| 泗水县| 邵阳县| 临泉县| 南溪县| 陆丰市| 出国| 浮山县| 石景山区|