成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼

利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼

熱門標(biāo)簽:ai電銷機(jī)器人連接網(wǎng)關(guān) 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)怎么安裝 中紳電銷智能機(jī)器人 跟電銷機(jī)器人做同事 濟(jì)南辦理400電話 威海營(yíng)銷外呼系統(tǒng)招商 漳州人工外呼系統(tǒng)排名 農(nóng)村住宅地圖標(biāo)注 鄭州電銷外呼系統(tǒng)違法嗎

本文介紹了利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼,分享給大家,具體如下:

先來看效果圖

這里并沒引用jquery等第三方庫(kù),只是用dom操作和canvas的特性編寫的。

canvas畫圓大體分為實(shí)心圓和空心圓。

根據(jù)需求分析知道該圓為實(shí)心圓。

1.先用canvas畫實(shí)心圓

//偽代碼
var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(圓心x軸坐標(biāo),圓心y軸坐標(biāo),半徑,開始角,結(jié)束角);
ctx.fillStyle = 'green';
ctx.closePath();
ctx.fill();

2.根據(jù)不同顏色繪制餅狀圖

//偽代碼
var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(圓心x軸坐標(biāo),圓心y軸坐標(biāo),半徑,綠色開始角,綠色結(jié)束角);
ctx.fillStyle = 'green';
ctx.closePath();
ctx.fill();
ctx.beginPath();
ctx.arc(圓心x軸坐標(biāo),圓心y軸坐標(biāo),半徑,紅色開始角,紅色結(jié)束角);
ctx.fillStyle = 'red';
ctx.closePath();
ctx.fill();
ctx.beginPath();
ctx.arc(圓心x軸坐標(biāo),圓心y軸坐標(biāo),半徑,黃色開始角,黃色結(jié)束角);
ctx.fillStyle = 'yellow';
ctx.closePath();
ctx.fill();
ctx.beginPath();
ctx.arc(圓心x軸坐標(biāo),圓心y軸坐標(biāo),半徑,紫色開始角,紫色結(jié)束角);
ctx.fillStyle = 'purple';
ctx.closePath();
ctx.fill();

3.動(dòng)態(tài)繪制餅狀圖

動(dòng)態(tài)繪制圓網(wǎng)上普遍推薦三種方法:requestAnimationFrame、setInterval(定時(shí))、還有動(dòng)態(tài)算角度的。

這里我用的是第一種requestAnimationFrame方式。

在編寫的過程中發(fā)現(xiàn)一個(gè)問題,就是動(dòng)態(tài)畫圓時(shí)并不是以圓心的坐標(biāo)畫的。為了解決這一問題,需要在每次畫圓時(shí)重新將canvas的畫筆的坐標(biāo)定義為最初圓心的坐標(biāo)。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        #graph {
/*            border: 1px solid black;
            height: 100%;
            width: 100%;
            box-sizing: border-box;*/
        }
    </style>
</head>
<body>
<div id="circle" style="width: 500px;float: left;"></div>
</body>
</html>
<script type="text/javascript">
(function(window,undefined){
    var data = [
        {"product":"產(chǎn)品1","sales":[192.44 ,210.54 ,220.84 ,230.11 ,220.85 ,210.59 ,205.49 ,200.55 ,195.71 ,187.46 ,180.66 ,170.90]},
        {"product":"產(chǎn)品2","sales":[122.41 ,133.16 ,145.65 ,158.00 ,164.84 ,178.62 ,185.70 ,190.13 ,195.53 ,198.88 ,204.32 ,210.91]},
        {"product":"產(chǎn)品3","sales":[170.30 ,175.00 ,170.79 ,165.10 ,165.62 ,160.92 ,155.92 ,145.77 ,145.17 ,140.27 ,135.99 ,130.33]},
        {"product":"產(chǎn)品4","sales":[165.64 ,170.15 ,175.10 ,185.32 ,190.90 ,190.01 ,187.05 ,183.74 ,177.24 ,181.90 ,179.54 ,175.98]}
    ]
        
    var dom_circle = document.getElementById('circle');
    if(dom_circle != undefined && dom_circle != null)
    {
        var canvas = document.createElement("canvas");
        dom_circle.appendChild(canvas);
        var ctx = canvas.getContext('2d');
        var defaultStyle = function(Dom,canvas){
            if(Dom.clientWidth <= 300)
            {
                canvas.width = 300;
                Dom.style.overflowX = "auto";
            }
            else{
                canvas.width = Dom.clientWidth;
            }
            if(Dom.clientHeight <= 300)
            {
                canvas.height = 300;
                Dom.style.overflowY = "auto";
            }
            else
            {
                canvas.height = Dom.clientHeight;
            }
            //坐標(biāo)軸區(qū)域
            //注意,實(shí)際畫折線圖區(qū)域還要比這個(gè)略小一點(diǎn)
            return {
                p1:'green',
                p2:'red',
                p3:'yellow',
                p4:'purple',
                x: 0 ,    //坐標(biāo)軸在canvas上的left坐標(biāo)
                y: 0 ,    //坐標(biāo)軸在canvas上的top坐標(biāo)
                maxX: canvas.width ,   //坐標(biāo)軸在canvas上的right坐標(biāo)
                maxY: canvas.height ,   //坐標(biāo)軸在canvas上的bottom坐標(biāo)
                r:(canvas.width)/2,  //起點(diǎn)
                ry:(canvas.height)/2,  //起點(diǎn)
                cr: (canvas.width)/4, //半徑
                startAngle:-(1/2*Math.PI),               //開始角度
                endAngle:(-(1/2*Math.PI)+2*Math.PI),     //結(jié)束角度
                xAngle:1*(Math.PI/180)                   //偏移量
            };
        }
        //畫圓
        var tmpAngle = -(1/2*Math.PI);
        var ds = null;
        var sum = data[0]['sales'][0]+data[0]['sales'][1]+data[0]['sales'][2]+data[0]['sales'][3]
        var percent1 = data[0]['sales'][0]/sum * Math.PI * 2 ;
        var percent2 = data[0]['sales'][1]/sum * Math.PI * 2 + percent1;
        var percent3 = data[0]['sales'][2]/sum * Math.PI * 2 + percent2;
        var percent4 = data[0]['sales'][3]/sum * Math.PI * 2 + percent3;
        console.log(percent1);
        console.log(percent2);
        console.log(percent3);
        console.log(percent4);
        var tmpSum = 0;
        var drawCircle = function(){
            
            
            if(tmpAngle >= ds.endAngle)
            {
                return false;
            }
            else if(tmpAngle+ ds.xAngle > ds.endAngle)
            {
                tmpAngle = ds.endAngle;
            }
            else{
                tmpAngle += ds.xAngle;
                tmpSum += ds.xAngle
            }
            // console.log(ds.startAngle+'***'+tmpAngle);
            // console.log(tmpSum);
            // ctx.clearRect(ds.x,ds.y,canvas.width,canvas.height);
            
            if(tmpSum > percent1 && tmpSum <percent2)
            {
                ctx.beginPath();
                ctx.moveTo(ds.r,ds.ry);
                ctx.arc(ds.r,ds.ry,ds.cr,ds.startAngle+percent1,tmpAngle);
            
                ctx.fillStyle = ds.p2;
            }
            else if(tmpSum > percent2 && tmpSum <percent3)
            {
                ctx.beginPath();
                ctx.moveTo(ds.r,ds.ry);
                ctx.arc(ds.r,ds.ry,ds.cr,ds.startAngle+percent2,tmpAngle);
                ctx.fillStyle = ds.p3;
            }
            else if(tmpSum > percent3 )
            {
                ctx.beginPath();
                ctx.moveTo(ds.r,ds.ry);
                ctx.arc(ds.r,ds.ry,ds.cr,ds.startAngle+percent3,tmpAngle);
                ctx.fillStyle = ds.p4;
            }
            else{
                ctx.beginPath();
                ctx.moveTo(ds.r,ds.ry);
                ctx.arc(ds.r,ds.ry,ds.cr,ds.startAngle,tmpAngle);
                ctx.fillStyle = ds.p1;
            }
            ctx.closePath();
            ctx.fill();
            requestAnimationFrame(drawCircle);
        }
        this.toDraw = function(){
            ds= defaultStyle(dom_circle,canvas);
            // console.log(tmpAngle);
            // console.log(ds.xAngle)
            ctx.clearRect(ds.x,ds.y,canvas.width,canvas.height);
            drawCircle();
        }
        this.toDraw();
        var self = this;
        window.onresize = function(){
            self.toDraw()
        }
    }

})(window);    
</script>

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

標(biāo)簽:咸陽(yáng) 營(yíng)口 甘南 蘇州 萍鄉(xiāng) 紅河 文山 惠州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼》,本文關(guān)鍵詞  利用,html5,canvas,動(dòng)態(tài),畫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于利用html5 canvas動(dòng)態(tài)畫餅狀圖的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    午夜国产小视频| 亚洲欧美日韩国产成人精品影院| 少妇大叫太大太粗太爽了a片小说| 第四色婷婷基地| 精品视频在线一区| 豆国产97在线 | 亚洲| 亚洲精品无码专区| 动漫一区二区在线| 亚洲精品aⅴ中文字幕乱码| 国产一区二中文字幕在线看| 亚洲熟妇国产熟妇肥婆| 伊人久久大香线蕉精品组织观看| 亚洲精品国产无天堂网2021| 久久久久99精品成人片毛片| 91ph在线| caoporen人人| 女生裸体视频网站免费观看| 很黄很黄的网站免费的| 在线观看av免费观看| 91制片厂毛片| 国产手机免费视频| 熟年交尾五十路视频在线播放| 久久九九国产| 红桃视频一区二区三区免费| 欧美一级视频精品观看| 欧美日韩亚洲国内综合网俺| 国产亚洲精彩久久| 欧美午夜精品久久久久久蜜| 黄色一级大片在线免费看产| 色噜噜狠狠色综合网| 国产剧情av片巨作醉酒女邻居| 久久91视频| 亚洲国产精品成人无久久精品| 日韩片电影在线免费观看| 久久伦理网站| 久久大大胆人体| 天天插综合网| 亚洲精品极品| 国产探花一区在线观看| 天天天天天天天天操| 日韩欧美中文字幕在线视频| 国产91丝袜美女在线播放| 激情综合网站| 国产精品视频一区二区三区麻豆| 亚洲不卡1卡2卡三卡2021麻豆| 尤物视频..com| 一本一道无码中文字幕精品热| 亚洲精品国产精品自产a区红杏吧| 中文字幕人妻丝袜乱一区三区| 中文字幕亚洲无线码a| 在线一区免费| 天堂在线www天堂中文在线| 日本精品国产| 亚洲自拍偷拍一区| 国产成人精品国内自产拍免费看| 国产高清免费在线播放| 97热在线精品视频在线观看| 成人在线免费观看视频网站| 日本中文字幕在线免费观看| 日本1区2区| 日本欧美久久久久免费播放网| 亚洲婷婷综合色高清在线| 欧美一区二区激情视频| 欧美精品精品精品精品免费| 91精品国产91综合久久蜜臀| 久久久久久久综合日本| 精品人妻一区二区三区四区| 国产字幕视频一区二区| 亚洲国产精品久久人人爱潘金莲| 在线不卡欧美| 成人综合色站| 欧美美女在线直播| 国产视频一区在线观看一区免费| 丰满圆润老女人hd| 亚洲aⅴ网站| 亚洲网友自拍偷拍| av中文字幕在线不卡| 久久中文字幕av一区二区不卡| 国产风韵犹存在线视精品| 国产69精品久久久久9999人| 亚洲自拍偷拍视频| 无码国产精品一区二区高潮| 午夜激情在线| 国产一区在线观看麻豆| 国产在线一区二区视频| 免费看国产一级片| 国产精品国产馆在线真实露脸| 美女黄色片视频| 欧美videos巨大粗暴| 99久久久久久中文字幕一区| 国产精品亲子乱子伦xxxx裸| 白浆在线视频| 国产人妻精品久久久久野外| 粉嫩的18在线观看极品精品| 噜噜爱69成人精品| 中文字幕乱码免费| 欧美日韩电影免费看| 久久久男人天堂| 国产精品毛片一区视频播| 中文字幕成人精品久久不卡| 久久精品五月婷婷| 亚洲成人av电影在线| 手机在线看片日韩| 精品国产精品三级精品av网址| 激情久久五月天| 4388成人网| 欧美国产综合在线| 丰满人妻一区二区| 亚洲尤物视频网| 人妻少妇精品无码专区久久| 综合综合综合综合综合网| 99国精产品一二二线| xxxx69hd| 一区二区不卡视频| 日本福利一区| 精品无码久久久久久久动漫| 岛国av在线一区| 1024在线看片你懂得| 国产精品亚洲第五区在线| 国产av无码专区亚洲精品| 欧美男同视频网| 欧美aaaaaa午夜精品| 日本不卡不码高清免费观看| 国产美女搞久久| 国产精品美乳一区二区免费| 国产一区免费看| 日本xxxxxxxxxx75| 午夜性色一区二区三区免费视频| 在线免费视频你懂得| 成人在线播放网址| 一区二区三区日韩欧美精品| 中文字幕国内精品| 成人自拍小视频| 亚洲免费伊人电影| 影音先锋5566资源站| 国产传媒久久文化传媒| 精品美女国产在线| 欧美福利影院| 成人av在线看| jvid福利在线一区二区| 久久国产精品网| 日韩av在线中文| 精品成人免费观看| 亚洲国产精品va在线| 欧美激情在线视频二区| 成人h动漫精品一区二区| 麻豆传传媒久久久爱| 国产精品178页| 欧美videossex另类| 欧美大片免费观看在线观看网站推荐| 欧美久久久久久久久久久久| 国产成人精品无码高潮| 18网站在线观看| 亚洲精品久久久中文字幕| 91专区视频| 欧美日韩综合一区二区三区| 电影一区中文字幕| 91成人观看| 朝桐光av在线一区二区三区| 国产91精品精华液一区二区三区| 成视频年人免费看黄网站| 亚洲成人动漫在线观看| 四虎永久免费观看| 亚洲经典自拍| 中文在线免费视频| 亚洲高清视频在线| 成人在线免费观看av| 国产又黄又猛又粗又爽| 久久免费电影网| 国产在线拍偷自揄拍精品| 亚洲一级一区| 国产精品资源站在线| 国产精品日本欧美一区二区三区| 日韩欧美不卡在线观看视频| 九九热精品视频在线播放| 精品粉嫩aⅴ一区二区三区四区| 99久久久国产精品免费调教网站| 国产日韩欧美麻豆| 成人毛片在线观看| 国产一伦一伦一伦| 五月婷婷六月综合| 奇米色在线视频| 欧美爱爱视频| 国产精品国产三级国产aⅴ| 久青草视频在线播放| 97国产精品人人爽人人做| 天天看片激情网站| 亚洲精品国产福利| 欧美激情综合色| 国产99久久久精品| 国产男女在线观看| 朝桐光一区二区| 精品爆乳一区二区三区无码av| 白白色视频在线| 诱人的瑜伽老师3hd中字| 中文字幕国产亚洲2019| 中文国产成人精品| 成年人看的免费视频| 国产乱一区二区| 欧美free嫩15| 国产夫妻自拍一区| 国产91精品在线观看| 51国偷自产一区二区三区| 精品国产一区二区三区麻豆免费观看完整版| 免费黄色网网址| 色喇叭免费久久综合| 日韩无码精品一区二区| 91精品婷婷国产综合久久竹菊| 久久精彩视频| 成人做爰www免费看视频网站| 亚洲精品国产无码| 青青在线视频| 99国产精品久久| 欧美日韩免费看片| 狠狠综合久久av一区二区老牛| 国产盗摄视频在线观看| 2019中文字幕在线免费观看| 久久久一区二区| 免费亚洲一区二区| 国产精品国产精品国产专区不蜜| 久久99久久久久久久久久久| 亚洲日本天堂| 亚洲精品v欧美精品v日韩精品| 99re这里只有精品首页| 爱久久·www| 久久.com| 香蕉视频黄色片| 国产一区二区三区免费观看| 污污视频在线| 国产免费久久av| 亚洲午夜久久久久久尤物| 好看的日韩精品| 乱熟女高潮一区二区在线| 99国产精品视频免费观看一公开| 精品人体无码一区二区三区| 岛国在线最新| 你真棒插曲来救救我在线观看| 亚洲精品大片www| 亚洲一级特黄| 很污很黄的网站| 欧美日韩在线免费视频| 99亚洲国产精品| 欧美日韩在线精品一区二区三区激情综| 伊人精品成人久久综合软件| 免费偷拍视频网站| 蜜桃视频日韩| 亚洲欧美日本视频在线观看| www深夜成人a√在线| 欧美最猛黑人猛交69| 亚洲片国产一区一级在线观看| 欧美在线小视频| 美美哒免费高清在线观看视频一区二区| 精品女人久久久| 国产不卡在线播放| 男人的天堂最新网址| 色妞欧美日韩在线| 国产视频97| 日韩国产欧美一区二区| 亚洲午夜成aⅴ人片| 成人免费视频久久| 欧美虐宫另类残忍视频| 日韩电影毛片| 青青青青在线| 久久午夜影视| youjizz欧美| av网站网址| 在线视频一区二区三区在线播放| 九九精品视频在线看| 欧美男男大粗吊1069| 亚洲人成电影在线播放| jizzjizzjizz欧美| 亚洲图片在区色| www色aa色aawww| 精品免费视频一区二区| 国产一二区在线| 头脑特工队2在线播放| 中文字幕人妻一区二区三区| 国产精品久久久久9999吃药| 蜜桃视频在线观看播放| 91成人破解版| 欧美xxx在线| 一区二区不卡视频在线观看| 黄色av免费观看| seseavlu视频在线| 国产一区二区三区网| 国产一级精品在线| 中国女人内谢25xxxxx| 国产亚洲一区二区在线观看| 欧美成人一级视频| 亚洲黄色一级大片| 群体交乱之放荡娇妻一区二区| 成人亚洲欧美| 久久大大胆人体| 久久sese| av在线天堂播放| 国户精品久久久久久久久久久不卡| 在线视频网站| 中国丰满人妻videoshd| 波多野结衣的一区二区三区| 中文字幕资源网在线观看免费| 亚洲国产精品电影| 丁香婷婷深情五月亚洲| 欧美激情在线视频二区| 国产xxx69麻豆国语对白| 美脚丝袜一区二区三区在线观看| 国产裸体无遮挡| 日韩一区二区三区四区五区| 国产精品自产拍在线网站| 黑人巨大40厘米重口ysn| 国产高清不卡一区| 91麻豆一二三四在线| 激情成人综合网| 91精品国产综合久久久久久豆腐| 大桥未久女教师av一区二区| 一区在线中文字幕| 色婷婷综合久久久久中文字幕| 精品96久久久久久中文字幕无| 精品国产一区二区三区av片| 亚洲女人被黑人巨大进入| 在线免费看黄网站| 青草青草久热精品视频在线观看| 国产黄色片免费在线观看| 欧美日韩黄色一级片| 久久久久国产精品区片区无码| 久久久www成人免费无遮挡大片| 国产h在线观看| 影音先锋2020色资源网| 香蕉视频在线观看网站|