亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

利用 Canvas實(shí)現(xiàn)繪畫(huà)一個(gè)未閉合的帶進(jìn)度條的圓環(huán)

2024-08-26 00:21:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
最終效果圖

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

一、定義變量

定義半徑,定義圓環(huán)厚度,定義圓心位置、定義默認(rèn)填充顏色

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

二、畫(huà)第一個(gè)圓弧

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

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

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

也就是說(shuō),這個(gè)方法可以用來(lái)給 Canvas圖像 分組,繪制新的圖形如果不調(diào)用此方法,那么新的圖形會(huì)和前面的圖形連接在一起

三、畫(huà)第一個(gè)連接處

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

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

連接外是用二次貝塞爾曲線來(lái)畫(huà)的,Canvas的 quadraticCurveTo(cp1x, cp1y, x, y) 方法接受4個(gè)參數(shù),第一、二個(gè)參數(shù)為控制點(diǎn),第三、四個(gè)參數(shù)為結(jié)束點(diǎn)官方文檔
只需算出控制點(diǎn)和結(jié)束點(diǎn),就可以畫(huà)出一個(gè)圓弧

四、畫(huà)第二個(gè)圓弧

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

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

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

五、畫(huà)第二個(gè)連接處

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

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

這一步其實(shí)和第三步相差不大,簡(jiǎn)單的調(diào)換了下參數(shù)位置

六、填充

 ctx.fill();

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

至此,一個(gè)簡(jiǎn)單的未閉合的圓環(huán)就完成了

畫(huà)第二個(gè)進(jìn)度條圓環(huán)

七、初始化

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

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

八、繪制第二個(gè)進(jìn)度條圓環(huán)

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,繪畫(huà),進(jìn)度條,圓環(huán)

由于和第一個(gè)圓環(huán)繪制方式一模一樣,就不在重復(fù)了,區(qū)別僅僅是圓的弧度

九、旋轉(zhuǎn) Canvas

transform: rotate(-135deg);

Canvas,繪畫(huà),進(jìn)度條,圓環(huán)

由于css的旋轉(zhuǎn)比較方便,也省去了角度的計(jì)算,所以本人使用的是css的transform來(lái)旋轉(zhuǎn)的。當(dāng)然 Canvas 也提供了旋轉(zhuǎn)的方法

完整代碼

 

<!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">服務(wù)分</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>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
中文字幕久久av| 超碰免费公开在线| 亚洲欧美另类久久久精品| 亚洲精品久久久久国产| 最近2018中文字幕免费在线视频| 欧美人与性动交xxⅹxx| 中国动漫在线观看完整版免费| 欧美日韩免费在线视频| 国产美女在线播放| 97超碰人人模人人爽人人看| 免费的很黄很污的视频网站| 波多野结衣在线| 亚洲欧美日韩久久精品| 无码人妻精品一区二区蜜桃色欲| 亚洲人成午夜免电影费观看| 中文字幕免费在线观看视频一区| 嫩模一区二区三区| 色诱av手机版| 亚洲一区欧美一区| 欧美hdxxxx| 亚洲欧美国产精品专区久久| 中文字幕一区二区三区四区免费看| 51精品免费网站| 欧美一级色片| 成人情趣片在线观看免费| 亚洲一区二区动漫| 国产精品分类| 麻豆视频一区| 一区二区三区视频免费看| 日韩专区一卡二卡| 亚洲精品一区国产| 一本久道久久综合婷婷鲸鱼| 鲁大师成人一区二区三区| xvideos成人免费中文版| 国产色综合久久| 日韩av手机在线播放| 成人毛片免费看| 国产精品99久久久久久久久久久久| 四色最新网址| 日韩一区二区电影在线观看| 亚洲综合激情网| 不卡在线一区| 久蕉依人在线视频| 国产三级视频在线播放| 欧美亚洲国产日韩2020| 国内外成人免费激情在线视频| 国产喷水吹潮视频www| 战狼4完整免费观看在线播放版| 受虐m奴xxx在线观看| 午夜视频免费在线| 色婷婷亚洲婷婷| 国产精品调教视频| 日韩欧美资源站| 亚洲人成网站在线播| 一本综合久久| 92精品国产成人观看免费| 免费国产自久久久久三四区久久| 色婷婷国产精品综合在线观看| 国产精品久久久久久人| 日韩欧美国产综合| 中文字幕一区在线观看视频| 国产日韩精品一区二区三区| 亚洲色图色老头| 奇米影视狠狠狠| japanese日本护士撒尿| 香蕉视频官网在线观看日本一区二区| 女人18毛片九区毛片在线| 日韩欧美中文在线| 一个人免费观看日本www视频| xxxx日韩| 亚洲欧美在线高清| 日韩视频免费观看| 毛片毛片毛片毛片毛片毛片| 国产人妻人伦精品| 一区二区精品区| 涩视频在线观看| 日韩免费观看av| 大量国产精品视频| 国产日韩精品一区二区三区在线| 亚洲乱码一区| 视频福利一区| 亚洲第一精品夜夜躁人人爽| 四虎影视成人永久免费观看视频| 精品少妇爆乳无码av无码专区| 国产欧美日韩一区二区三区在线| 飘雪影院手机免费高清版在线观看| 精品一区二区三区人妻| 91精品国产欧美一区二区18| 久久夜色精品国产亚洲aⅴ| 国产综合色视频| 2019年中文字幕| 一区二区三区四区五区精品视频| 欧美日韩一区三区四区| 国产精品久久久久久亚洲毛片| 成人亚洲综合天堂| 精品国产欧美日韩一区二区三区| 国产精品久久久久久久av大片| 成人黄网18免费观看的网站| 日本中文字幕免费观看| 国产日韩v精品一区二区| 97aⅴ精品视频一二三区| 波多野结衣在线免费观看| 日韩一区二区三区三四区视频在线观看| 欧美日本视频一区| 鲁一鲁一鲁一鲁一澡| 欧美激情国产高清| jizzjizzjizz国产| 99久久综合国产精品二区| 亚洲成人精品在线| 天天干天天色天天| 日韩视频在线观看视频| 国产综合色在线观看| 日韩精品久久一区二区三区| 亚洲精品视频观看| 欧美精品一区二区三区在线四季| 欧美18hd| www.精品在线| 成年人性生活视频| 91福利区一区二区三区| 国产黄色片在线| 亚洲欧美色视频| 激情综合网最新| 91国产精品电影| 三级三级久久三级久久18| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲日本aⅴ片在线观看香蕉| 国产在线视频2019最新视频| 日本最新在线视频| 丁香激情综合五月| 黄色成人av网站| 欧美激情女人20p| 免费黄网站在线观看| 性欧美videos高清hd4k| 激情在线小视频| 日本一区精品视频| 久久国产麻豆精品| 亚洲人人精品| a级片在线观看| 欧美喷水视频| 在线观看中文av| 久无码久无码av无码| 国产真实乱全部视频| 国产国产精品人在线视| 国产精品一区二区男女羞羞无遮挡| 国产91丝袜美女在线播放| 国内免费精品视频| 5g影院天天爽成人免费下载| 日韩激情电影免费看| 色婷婷av一区二区三区之e本道| 伊人精品久久| 精品少妇爆乳无码av无码专区| 日韩少妇内射免费播放18禁裸乳| 亚洲一级一区| 亚洲AV无码久久精品国产一区| 艳妇乳肉豪妇荡乳av无码福利| 亚洲午夜精品一区二区三区| 在线视频欧美亚洲| 97在线看免费观看视频在线观看| 亚洲欧美三级伦理| 99色精品视频| 亚洲精品一区二区在线看| 亚洲福利视频网站| 亚洲一级黄色大片| 国产超碰人人爽人人做人人爱| 97久久网站| 欧美视频日韩视频在线观看| 欧美视频一区在线观看| 黄瓜视频网站| 中文字幕不卡每日更新1区2区| 91精品办公室少妇高潮对白| 亚洲午夜精品一区二区三区| 国产一区激情在线| 国产人妻精品久久久久野外| 日本高清视色| 91麻豆精品国产综合久久久久久| 亚洲第一福利网站| 91视频免费入口| 欧美特级xxxxbbbb毛片| 九九九久久国产免费| 91在线码无精品| 夜夜添无码一区二区三区| 男人舔女人下面高潮视频| 成年人黄色网址| 日韩欧美激情一区| 国产成人无码精品亚洲| 97国产一区二区| 99精品国产九九国产精品| 先锋av在线资源| 久久一本综合频道| 7777精品伊久久久大香线蕉语言| 欧美精品久久久久久久久久久| 粉嫩在线一区二区三区视频| 美腿丝袜亚洲图片| 久热在线视频观看| 国产999精品久久久久久| 免费在线成人激情电影| 成人精品第一区二区三区| julia中文字幕久久亚洲蜜臀| 一区二区三区四区毛片| 国产真人做爰视频免费| 色av一区二区三区| 911国产网站尤物在线观看| 人人爽人人爽人人片av| 日本免费精品视频| av女优在线播放| 色yeye香蕉凹凸一区二区av| 国产丝袜视频一区| 天堂在线观看一卡二卡三卡四卡| 巨大荫蒂视频欧美大片| 欧美精品久久96人妻无码| xxxx国产精品| 国产精品亚洲一区二区三区| 男人在线观看视频| 日韩成人网免费视频| 国产精品免费一区二区三区在线观看| 久久久久久久久网站| 91免费国产网站| 国产精品久久久久久免费播放| 中文字幕 欧美 日韩| 国产精品久久999| 国产av无码专区亚洲a∨毛片| 亚洲精品国产一区二| 欧美日韩成人| 丝袜情趣国产精品| vam成人资源在线观看| 日本影音先锋电影| 97中文字幕在线观看| 麻豆传媒视频在线观看| 国产成人三级视频| 在线成人一区二区| 国产激情偷乱视频一区二区三区| 毛片在线视频播放| 一本色道综合久久欧美日韩精品| 岛国精品视频在线播放| 在线精品播放av| 久久精品亚洲一区二区三区浴池| 国产小视频在线观看免费| 日本一区二区三区免费看| 综合视频免费看| 五月香视频在线观看| 麻豆久久久av免费| 久久久97精品| 你懂得影院夜精品a| 久久成人一区二区| 亚洲mv大片欧洲mv大片精品| 青草草在线视频| 精品少妇一区二区三区免费观看| 日本老太婆做爰视频| 日韩免费不卡视频| 久久久久久久高清| 成av人片在线观看www| 色94色欧美sute亚洲13| 精品一区电影| 欧美精品hd| 夜夜添无码一区二区三区| 欧美精品欧美极品欧美激情| 天天爱天天做天天操| 黄色成人av| 精品久久在线观看| 一区二区三区视频网站| 午夜电影一区二区三区| 久久免费精品视频| 91精品蜜臀在线一区尤物| 很黄很污的网站| 亚洲精品久久久久久国产精华液| 在线观看亚洲一区二区| 国产三级免费观看| 国产成人午夜精品| 亚洲成人不卡| 有没有片在线看www| 黄网页免费在线观看| 久久综合久久久久88| 在线免费观看视频黄| 国产又粗又长| 福利在线免费视频| 国产精品白浆一区二小说| 91日本韩国| 久久久精品国产网站| 久久久久成人黄色影片| 精品一区二区国语对白| 一本精品一区二区三区| 天天躁日日躁狠狠躁喷水| 在线观看视频免费| 99精品视频99| 亚洲免费网站| 日韩精品分区| 影音先锋日韩av| 在线日本视频| 国产精品免费久久久久影院| 欧美成人手机视频| 你懂的在线播放| 欧美在线免费观看视频| 黄色工厂这里只有精品| 免费看黄网站在线观看| 国产精品白丝jk白祙喷水网站| 亚洲精品极品少妇16p| 日韩精品乱码久久久久久| 国产精品成人va在线观看| 性欧美1819sex性高清| 亚洲综合色区另类av| 国产黄色一级电影| 国产真人真事毛片| 国产福利视频在线播放| 香蕉久久久久久久av网站| 日韩免费va| 亚洲成人精品av| 欧洲亚洲精品| 在线一区二区日韩| 国产三区二区一区久久| 中文字幕a在线观看| 日本不卡免费新一二三区| 久久www免费人成精品| 亚洲国产精品二十页| 超碰高清在线| 国产午夜精品一区二区| 一本久道高清无码视频| 欧美日韩在线精品一区二区三区激情综合| www.九色在线| 韩国三级在线播放| 欧美猛少妇色xxxxx| 欧美一区二区三区日韩视频| 久久久噜噜噜久噜久久| 视频一区二区在线播放| 国产精品一区二区欧美| 欧美三级蜜桃2在线观看| 国产亚洲无码精品| 成年在线电影| 91成人伦理在线电影|