成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何通過HTML5CanvasAPI繪制弧線和圓形

今天就跟大家聊聊有關(guān)如何通過HTML5Canvas API繪制弧線和圓形,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),營(yíng)銷型網(wǎng)站到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)雅安機(jī)房托管、成都app軟件開發(fā)、手機(jī)移動(dòng)建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營(yíng)銷。

JavaScript Code復(fù)制內(nèi)容到剪貼板

arc(x, y, radius, startRad, endRad, anticlockwise)

 

在canvas畫布上繪制以坐標(biāo)點(diǎn)(x,y)為圓心、半徑為radius的圓上的一段弧線。這段弧線的起始弧度是startRad,結(jié)束弧度是endRad。這里的弧度是以x軸正方向(時(shí)鐘三點(diǎn)鐘)為基準(zhǔn)、進(jìn)行順時(shí)針旋轉(zhuǎn)的角度來計(jì)算的。anticlockwise表示是以逆時(shí)針方向還是順時(shí)針方向開始繪制,如果為true則表示逆時(shí)針,如果為false則表示順時(shí)針。anticlockwise參數(shù)是可選的,默認(rèn)為false,即順時(shí)針。
如何通過HTML5Canvas API繪制弧線和圓形

arc()方法中的弧度計(jì)算方式

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. arcTo(x1, y1, x2, y2, radius)  

這個(gè)方法將利用當(dāng)前端點(diǎn)、端點(diǎn)1(x1,y1)和端點(diǎn)2(x2,y2)這三個(gè)點(diǎn)所形成的夾角,然后繪制一段與夾角的兩邊相切并且半徑為radius的圓上的弧線。一般情況下,繪制弧線的開始位置是當(dāng)前端點(diǎn),結(jié)束位置是端點(diǎn)2,并且弧線繪制的方向就是連接這兩個(gè)端點(diǎn)的最短圓弧的方向。此外,如果當(dāng)前端點(diǎn)不在所指定的圓上,本方法還將繪制一條從當(dāng)前端點(diǎn)到弧線起點(diǎn)的直線。
由于詳細(xì)介紹arcTo()方法的篇幅較多,請(qǐng)移步至這里查看arcTo()的詳細(xì)用法。

在了解了canvas繪制弧線的上述API之后,我們就一起來看看如何使用arc()繪制弧線。我們已經(jīng)知道,arc()接收的第4個(gè)和第5個(gè)參數(shù)表示繪制弧線的開始弧度和結(jié)束弧度。相信各位讀者在學(xué)校的數(shù)學(xué)或幾何課程上都學(xué)過弧度,弧度是一種角度單位?;¢L(zhǎng)等于半徑的弧,其所對(duì)的圓心角就是1弧度。我們還知道,半徑為r的圓,其周長(zhǎng)為2πr。在具備這些幾何知識(shí)的前提下,我們就可以使用arc()方法繪制弧線了。

使用canvas繪制弧線

現(xiàn)在,我們就來繪制一條半徑為50px的圓的1/4弧線。

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. <!DOCTYPE html>   
    <html>   
    <head>   
    <meta charset="UTF-8">   
    <title>HTML5 Canvas繪制弧線入門示例</title>   
    </head>   
    <body>   
      
    <!-- 添加canvas標(biāo)簽,并加上紅色邊框以便于在頁面上查看 -->   
    <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">   
    您的瀏覽器不支持canvas標(biāo)簽。   
    </canvas>   
      
    <script type="text/javascript">   
    //獲取Canvas對(duì)象(畫布)   
    var canvas = document.getElementById("myCanvas");   
    //簡(jiǎn)單地檢測(cè)當(dāng)前瀏覽器是否支持Canvas對(duì)象,以免在一些不支持html5的瀏覽器中提示語法錯(cuò)誤   
    if(canvas.getContext){     
        //獲取對(duì)應(yīng)的CanvasRenderingContext2D對(duì)象(畫筆)   
        var ctx = canvas.getContext("2d");     
           
        //開始一個(gè)新的繪制路徑   
        ctx.beginPath();   
        //設(shè)置弧線的顏色為藍(lán)色   
        ctx.strokeStyle = "blue";   
        var circle = {   
            x : 100,    //圓心的x軸坐標(biāo)值   
            y : 100,    //圓心的y軸坐標(biāo)值   
            r : 50      //圓的半徑   
        };   
        //沿著坐標(biāo)點(diǎn)(100,100)為圓心、半徑為50px的圓的順時(shí)針方向繪制弧線   
        ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI / 2, false);       
        //按照指定的路徑繪制弧線   
        ctx.stroke();   
    }   
    </script>   
    </body>   
    </html>

對(duì)應(yīng)的顯示效果如下圖:
如何通過HTML5Canvas API繪制弧線和圓形

使用canvas沿著順時(shí)針方向繪制弧線
如上所示,我們?cè)O(shè)置了繪制的弧線的所在圓的圓心坐標(biāo)為(100,100),半徑為50px。由于一個(gè)半徑為r的圓的周長(zhǎng)為2&pi;r,也就是說,一個(gè)完整的圓,其所對(duì)應(yīng)的弧度為2&pi;(換算成常規(guī)角度就是360&deg;),所以我們想要畫一個(gè)圓的1/4弧線,只要弧度為&pi;/2(即90&deg;)就可以了。在上面的代碼中,我們使用了JavaScript中表示&pi;的常量Math.PI。

此外,在上面的代碼中,我們還設(shè)置了繪制弧線的方向?yàn)轫槙r(shí)針方向(false)。由于起始弧度為0,結(jié)束弧度為&pi;/2,因此弧線將從x軸的正方向開始沿著順時(shí)針方向繪制,從而得到上面的圖形。如果我們將上述代碼中的弧線繪制方向改為逆時(shí)針,會(huì)有什么樣的效果呢?

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. <script type="text/javascript">   
    //獲取Canvas對(duì)象(畫布)   
    var canvas = document.getElementById("myCanvas");   
    //簡(jiǎn)單地檢測(cè)當(dāng)前瀏覽器是否支持Canvas對(duì)象,以免在一些不支持html5的瀏覽器中提示語法錯(cuò)誤   
    if(canvas.getContext){     
        //獲取對(duì)應(yīng)的CanvasRenderingContext2D對(duì)象(畫筆)   
        var ctx = canvas.getContext("2d");     
           
        //開始一個(gè)新的繪制路徑   
        ctx.beginPath();   
        //設(shè)置弧線的顏色為藍(lán)色   
        ctx.strokeStyle = "blue";   
        var circle = {   
            x : 100,    //圓心的x軸坐標(biāo)值   
            y : 100,    //圓心的y軸坐標(biāo)值   
            r : 50      //圓的半徑   
        };   
        //沿著坐標(biāo)點(diǎn)(100,100)為圓心、半徑為50px的圓的逆時(shí)針方向繪制弧線   
        ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI / 2, true);       
        //按照指定的路徑繪制弧線   
        ctx.stroke();   
    }   
    </script>

對(duì)應(yīng)的顯示效果如下:
如何通過HTML5Canvas API繪制弧線和圓形

使用canvas沿著逆時(shí)針方向繪制弧線


使用canvas繪制圓形

當(dāng)我們學(xué)會(huì)了繪制弧線之后,舉一反三,我們想要繪制圓形自然也不在話下,只需要將上述代碼的結(jié)束弧度改為2&pi;即可。

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. <script type="text/javascript">   
    //獲取Canvas對(duì)象(畫布)   
    var canvas = document.getElementById("myCanvas");   
    //簡(jiǎn)單地檢測(cè)當(dāng)前瀏覽器是否支持Canvas對(duì)象,以免在一些不支持html5的瀏覽器中提示語法錯(cuò)誤   
    if(canvas.getContext){     
        //獲取對(duì)應(yīng)的CanvasRenderingContext2D對(duì)象(畫筆)   
        var ctx = canvas.getContext("2d");     
           
        //開始一個(gè)新的繪制路徑   
        ctx.beginPath();   
        //設(shè)置弧線的顏色為藍(lán)色   
        ctx.strokeStyle = "blue";   
        var circle = {   
            x : 100,    //圓心的x軸坐標(biāo)值   
            y : 100,    //圓心的y軸坐標(biāo)值   
            r : 50      //圓的半徑   
        };   
        //以canvas中的坐標(biāo)點(diǎn)(100,100)為圓心,繪制一個(gè)半徑為50px的圓形   
        ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI * 2, true);       
        //按照指定的路徑繪制弧線   
        ctx.stroke();   
    }   
    </script>

對(duì)應(yīng)的顯示效果如下:
如何通過HTML5Canvas API繪制弧線和圓形

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. <script type="text/javascript">   
    //獲取Canvas對(duì)象(畫布)   
    var canvas = document.getElementById("myCanvas");   
    //簡(jiǎn)單地檢測(cè)當(dāng)前瀏覽器是否支持Canvas對(duì)象,以免在一些不支持html5的瀏覽器中提示語法錯(cuò)誤   
    if(canvas.getContext){     
        //獲取對(duì)應(yīng)的CanvasRenderingContext2D對(duì)象(畫筆)   
        var ctx = canvas.getContext("2d");     
           
        //開始一個(gè)新的繪制路徑   
        ctx.beginPath();   
        //設(shè)置弧線的顏色為藍(lán)色   
        ctx.strokeStyle = "blue";   
        var circle = {   
            x : 100,    //圓心的x軸坐標(biāo)值   
            y : 100,    //圓心的y軸坐標(biāo)值   
            r : 50      //圓的半徑   
        };   
        //以canvas中的坐標(biāo)點(diǎn)(100,100)為圓心,繪制一個(gè)半徑為50px的圓形   
        ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI * 2, true);       
        //按照指定的路徑繪制弧線   
        ctx.stroke();   
    }   
    </script>

備注:arc()方法中的起始弧度參數(shù)startRad和結(jié)束弧度參數(shù)endRad都是以弧度為單位,即使你填入一個(gè)數(shù)字,例如360,仍然會(huì)被看作是360弧度。將上述代碼的結(jié)束弧度設(shè)為360會(huì)產(chǎn)生什么用的后果呢?這就要看繪制的方向了(即anticlockwise參數(shù)的值),如果是順時(shí)針繪制(false),則將繪制出一個(gè)完整的圓形;如果是逆時(shí)針繪制,大于2&pi;的弧度將被轉(zhuǎn)換為一個(gè)弧度相等、但不大于2&pi;的弧度。例如,將上述代碼中的結(jié)束弧度設(shè)為3&pi;(Math.PI * 3),如果anticlockwise為false,將會(huì)顯示為一個(gè)完整的圓形,如果為true,則其顯示效果與設(shè)為&pi;時(shí)的顯示效果一致。
如何通過HTML5Canvas API繪制弧線和圓形

結(jié)束弧度設(shè)為3&pi;時(shí),順時(shí)針(false)旋轉(zhuǎn)的繪制效果
如何通過HTML5Canvas API繪制弧線和圓形

結(jié)束弧度設(shè)為3&pi;時(shí),逆時(shí)針(true)旋轉(zhuǎn)的繪制效果

看完上述內(nèi)容,你們對(duì)如何通過HTML5Canvas API繪制弧線和圓形有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)站名稱:如何通過HTML5CanvasAPI繪制弧線和圓形
網(wǎng)頁鏈接:http://jinyejixie.com/article38/posisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
申扎县| 孙吴县| 乐业县| 鸡东县| 宝兴县| 鄯善县| 长子县| 中牟县| 常德市| 永泰县| 赣榆县| 沁源县| 梓潼县| 和林格尔县| 台山市| 庆云县| 河间市| 库车县| 茌平县| 江都市| 石门县| 称多县| 鱼台县| 玉田县| 合肥市| 耿马| 抚松县| 长武县| 丹阳市| 平乐县| 斗六市| 虹口区| 怀宁县| 霞浦县| 林芝县| 巴林左旗| 竹山县| 长岛县| 霍州市| 左权县| 太仓市|