婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 利用 Canvas實現繪畫一個未閉合的帶進度條的圓環

利用 Canvas實現繪畫一個未閉合的帶進度條的圓環

熱門標簽:高德地圖標注商戶怎么標 黃石ai電銷機器人呼叫中心 ok電銷機器人 智能電銷機器人被禁用了么 惡搞電話機器人 電話機器人技術 地圖標注軟件打印出來 欣鼎電銷機器人 效果 如何查看地圖標注
最終效果圖

一、定義變量

定義半徑,定義圓環厚度,定義圓心位置、定義默認填充顏色

let radius = 75
let thickness= 10
let innerRadius = radius - thickness
let x = 75
let y = 75
var canvas = document.getElementById('tutorial');
var ctx = canvas.getContext('2d');
ctx.fillStyle = "#f2d7d7";

二、畫第一個圓弧

ctx.beginPath();
ctx.arc(x, y, radius, Math.PI * 1.5, Math.PI)

注意 beginPath() 這個方法,生成路徑的第一步。本質上,路徑是由很多子路徑構成,這些子路徑都是在一個列表中,所有的子路徑(線、弧形、等等)構成圖形。而每次這個方法調用之后,列表清空重置,然后我們就可以重新繪制新的圖形。
 

也就是說,這個方法可以用來給 Canvas圖像 分組,繪制新的圖形如果不調用此方法,那么新的圖形會和前面的圖形連接在一起

三、畫第一個連接處

ctx.quadraticCurveTo((x - innerRadius) - thickness / 2, y - thickness, x - innerRadius, y)

連接外是用二次貝塞爾曲線來畫的,Canvas的 quadraticCurveTo(cp1x, cp1y, x, y) 方法接受4個參數,第一、二個參數為控制點,第三、四個參數為結束點官方文檔
只需算出控制點和結束點,就可以畫出一個圓弧

四、畫第二個圓弧

ctx.arc(x, y, innerRadius, Math.PI, Math.PI * 1.5, true)

注意方法后面最后一個參數,設置為true,代表逆時針繪制(默認是順時針)

五、畫第二個連接處

ctx.quadraticCurveTo(y - thickness, (x - innerRadius) - thickness / 2, x, y - innerRadius - thickness)

這一步其實和第三步相差不大,簡單的調換了下參數位置

六、填充

 ctx.fill();

至此,一個簡單的未閉合的圓環就完成了

畫第二個進度條圓環

七、初始化

ctx.beginPath();
ctx.fillStyle = "#e87c7c";

beginPath 表示繪制新的圖形,如果不調用此方法,那后面畫的圖形會和前面畫的圖形連在一起

八、繪制第二個進度條圓環

ctx.beginPath();
ctx.fillStyle = "#e87c7c";
ctx.arc(x, y, radius, Math.PI * 1.5, Math.PI * 2)
ctx.quadraticCurveTo((x + innerRadius) + thickness / 2, y + thickness, x + innerRadius, y)
ctx.arc(x, y, innerRadius, Math.PI * 2, Math.PI * 1.5, true)
ctx.quadraticCurveTo(y - thickness, (x - innerRadius) - thickness / 2, x, y - innerRadius - thickness)

ctx.fill();

由于和第一個圓環繪制方式一模一樣,就不在重復了,區別僅僅是圓的弧度

九、旋轉 Canvas

transform: rotate(-135deg);

由于css的旋轉比較方便,也省去了角度的計算,所以本人使用的是css的transform來旋轉的。當然 Canvas 也提供了旋轉的方法

完整代碼

 

<!DOCTYPE html>
<html lang="cn">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>canvas</title>
    <style>
        .ring {
            width: 150px;
            height: 150px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            position: relative;
        }

        #tutorial {
            transform: rotate(-135deg);
            width: 150px; 
            height: 150px;
        }

        .fraction {
            position: absolute;
            font-size: 30px;
            font-weight: bold;
            color: red;
        }

        .small {
            font-size: 12px;
            font-weight: lighter;
        }

        .title {
            color: red;
            bottom: 0;
            position: absolute;
        }
    </style>
</head>

<body>
    <div class="ring">
        <canvas id="tutorial" width="150" height="150"></canvas>
        <span class="fraction">100 <span class="small">分</span> </span>
        <span class="title">服務分</span>
    </div>

    <script>
        let radius = 75
        let thickness = 10
        let innerRadius = radius - thickness
        let x = 75
        let y = 75
        var canvas = document.getElementById('tutorial');
        var ctx = canvas.getContext('2d');
        ctx.fillStyle = "#f2d7d7";

        ctx.beginPath();
        ctx.arc(x, y, radius, Math.PI * 1.5, Math.PI)
        ctx.quadraticCurveTo((x - innerRadius) - thickness/2 , y - thickness, x - innerRadius, y)
        ctx.arc(x, y, innerRadius, Math.PI, Math.PI * 1.5, true)
        ctx.quadraticCurveTo(y - thickness, (x - innerRadius) - thickness / 2, x, y - innerRadius - thickness)
        ctx.fill();

        ctx.beginPath();
        ctx.fillStyle = "#e87c7c";
        ctx.arc(x, y, radius, Math.PI * 1.5, Math.PI * 2)
        ctx.quadraticCurveTo((x + innerRadius) + thickness / 2, y + thickness, x + innerRadius, y)
        ctx.arc(x, y, innerRadius, Math.PI * 2, Math.PI * 1.5, true)
        ctx.quadraticCurveTo(y - thickness, (x - innerRadius) - thickness / 2, x, y - innerRadius - thickness)
        ctx.fill();
    </script>
</body>

</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:綏化 中山 赤峰 萍鄉 聊城 盤錦 金昌 阿壩

巨人網絡通訊聲明:本文標題《利用 Canvas實現繪畫一個未閉合的帶進度條的圓環》,本文關鍵詞  利用,Canvas,實現,繪畫,一個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用 Canvas實現繪畫一個未閉合的帶進度條的圓環》相關的同類信息!
  • 本頁收集關于利用 Canvas實現繪畫一個未閉合的帶進度條的圓環的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人丝袜视频网| 偷拍一区二区三区| 国产高清在线精品| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲精品高清在线观看| 91精品国产麻豆| 蜜桃精品视频在线观看| 一区二区三区免费| 国产精品美女一区二区三区| 欧美在线一区二区| 成人久久18免费网站麻豆| 亚洲国产aⅴ成人精品无吗| 国产蜜臀av在线一区二区三区| 91超碰这里只有精品国产| 在线免费观看成人短视频| aa级大片欧美| 色婷婷综合久久久久中文| 国产一区二区在线影院| 国产综合一区二区| 九九九久久久精品| 久久精品国产99国产| 喷水一区二区三区| 精东粉嫩av免费一区二区三区| 日韩av一区二区三区| 蜜桃av噜噜一区| 风间由美性色一区二区三区| 国产盗摄精品一区二区三区在线| 国产91露脸合集magnet| 色欲综合视频天天天| 欧美蜜桃一区二区三区| 91精品国产综合久久精品图片| 日韩免费观看2025年上映的电影| 久久综合色一综合色88| 国产日韩欧美精品电影三级在线| 国产欧美日韩另类一区| 夜色激情一区二区| 韩国欧美一区二区| 色一情一乱一乱一91av| 在线成人av网站| 国产精品欧美久久久久无广告 | 播五月开心婷婷综合| 91麻豆免费看| 中文字幕国产一区| 久久99精品视频| 色丁香久综合在线久综合在线观看| 日韩一级完整毛片| 久久9热精品视频| 欧美日韩一区二区在线视频| 久久久蜜桃精品| 日本美女一区二区三区视频| 免费观看在线综合色| 国产成人av影院| 一本久久精品一区二区| 欧美福利一区二区| ...xxx性欧美| 99这里只有精品| 国产精品美女一区二区三区| 国产传媒久久文化传媒| 2019国产精品| 韩国女主播一区| 国产免费久久精品| 精品视频在线视频| 天天色图综合网| 日韩美女天天操| 免费久久精品视频| 国产拍揄自揄精品视频麻豆| 日韩成人午夜电影| 精品久久久久一区| 国产成人在线视频网址| 国产精品一区二区黑丝| 国产视频一区在线播放| 成人app在线| 亚洲一区二区三区在线| 欧美一级片免费看| 奇米影视7777精品一区二区| 一本大道av伊人久久综合| 欧美一区二区三区四区视频| 国产做a爰片久久毛片| 精品视频资源站| 极品少妇xxxx精品少妇| 91精品国产91久久综合桃花| 国产精品综合网| 亚洲国产一区二区视频| 欧美日韩中文精品| 波多野结衣在线一区| 日韩精品一二区| 国产精品久久久久久妇女6080| 精品在线观看免费| 麻豆极品一区二区三区| 午夜精品成人在线视频| 亚洲一区二区三区四区五区中文 | 亚洲精品一区二区三区四区高清 | 久久99精品久久只有精品| 国产精品美女久久久久aⅴ国产馆| 欧美一级二级在线观看| 欧洲精品在线观看| 91免费在线看| 欧美亚洲免费在线一区| 欧美在线观看你懂的| 欧美性一区二区| 欧美浪妇xxxx高跟鞋交| 日韩一级二级三级精品视频| 91精品国产黑色紧身裤美女| 欧美一区在线视频| 久久综合久久99| 日韩码欧中文字| 亚洲一区二区三区激情| 国产综合成人久久大片91| 国产精品一区一区| 99精品国产视频| 欧美一区三区四区| 国产精品传媒入口麻豆| 午夜精彩视频在线观看不卡| 久久精品国产99国产精品| 成人精品gif动图一区| 欧美一区中文字幕| 1024成人网| 国产麻豆精品久久一二三| 高清不卡一区二区| 欧美精品123区| 欧美激情一区二区三区四区| 亚洲午夜免费视频| 狠狠网亚洲精品| 在线观看成人免费视频| 日韩三级视频中文字幕| 国产午夜精品一区二区| 亚洲国产综合91精品麻豆| 美国毛片一区二区| 在线免费观看日本一区| 国产欧美一区二区精品忘忧草| 亚洲精选一二三| 亚洲精品伦理在线| 精品国产露脸精彩对白| 欧美日韩你懂得| 日韩视频在线你懂得| 欧美喷水一区二区| 国产精品每日更新| 91麻豆精品国产无毒不卡在线观看 | 国产精品理论片在线观看| 97久久超碰精品国产| 日本免费新一区视频| 成人自拍视频在线观看| 欧美精品色综合| 久久久久久毛片| 麻豆成人免费电影| 国产精品99久久久久久似苏梦涵| 欧美日韩一级大片网址| 成人晚上爱看视频| 亚洲国产精品自拍| 国产成人精品免费在线| 7777精品伊人久久久大香线蕉超级流畅 | 国产黑丝在线一区二区三区| 2021国产精品久久精品| 91在线一区二区| 最新欧美精品一区二区三区| 色综合久久综合| 亚洲欧洲日韩女同| 久99久精品视频免费观看| 久久精品一级爱片| 色欲综合视频天天天| 亚洲男人的天堂在线观看| 欧美性大战久久久久久久| 免费欧美在线视频| 国产成人精品aa毛片| 亚洲免费电影在线| 精品国产一区久久| 日本韩国精品一区二区在线观看| 亚洲电影第三页| 一本到三区不卡视频| 在线观看免费亚洲| 青草国产精品久久久久久| 26uuu精品一区二区| 亚洲国产欧美在线| 国产亚洲一本大道中文在线| 91精品啪在线观看国产60岁| 午夜久久久影院| 久久欧美中文字幕| 欧美亚洲国产怡红院影院| 国产成人精品综合在线观看| 捆绑紧缚一区二区三区视频| 亚洲成人av一区二区| 玉米视频成人免费看| 欧美亚洲愉拍一区二区| 欧美午夜精品免费| av在线不卡电影| 中文字幕国产一区| 欧美乱熟臀69xxxxxx| 欧美综合天天夜夜久久| 91精品一区二区三区久久久久久| 日本高清不卡一区| 国产欧美一区二区精品忘忧草| 91精品国产综合久久久久久 | 欧美日韩国产中文| 在线成人av影院| 欧美色大人视频| 日韩激情一区二区| 久久综合av免费| 亚洲3atv精品一区二区三区| 综合激情网...| 亚洲一区在线视频观看|