Day06(HTML5 canvas畫布 demo 幀動(dòng)畫)

Canvas 畫布

Canvas是一個(gè)矩形區(qū)域的畫布,可以用javascript在上面畫圖,控制每一個(gè)像素;
要記住,canvas標(biāo)簽是使用javascript在網(wǎng)頁(yè)上畫圖,本身不具備畫圖功能
Canvas:主要用于游戲
可視化數(shù)據(jù)、banner廣告

未來(lái)::可能性:模擬器、遠(yuǎn)程計(jì)算機(jī)控制、圖形編輯器(PS)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <canvas id="demo" width="600" height="600"></canvas><!--canvas標(biāo)簽的寬高,請(qǐng)?jiān)跇?biāo)簽內(nèi)進(jìn)行設(shè)置,不要用CSS-->
    </body>
    <script type="text/javascript">
        /*第一步,獲取canvas標(biāo)簽*/
        var can = document.getElementById("demo");
        can.style.border='1px solid red';
        can.width=600;
        can.height=600;
        /*canvas的寬高直接用width和height,千萬(wàn)別can.style.width*/
        
        
        /*第二步,獲取canvas的上下文(也就是畫布的工具欄)*/
        var ctx = can.getContext('2d');
        
        
        /*第三部:繪制*/
        /*畫圖,第一步,定位坐標(biāo)點(diǎn)*/
        ctx.moveTo(100,100)//將畫筆移動(dòng)到100,100的坐標(biāo)點(diǎn)
        ctx.lineTo(200,100)//將畫筆從100,100水平移動(dòng)到200,100的位置
        ctx.lineTo(100,200)//將畫筆從200,100移動(dòng)到100,200的位置
        
        /*閉合路徑*/
        ctx.closePath()閉合路徑
        
        //設(shè)置線寬
        ctx.lineWidth = 4;
        
        
        //設(shè)置描邊
        ctx.strokeStyle = 'red';//設(shè)置描邊樣式
        ctx.stroke()//描邊的意思
        
        
        //設(shè)置填充
        ctx.fillStyle = 'yellow';//設(shè)置填充樣式
        ctx.fill();
    </script>
    
    
</html>

demo canvas畫形狀圓

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <canvas id="can"></canvas>
    </body>
    <script type="text/javascript">
        (function(){
            var can = document.getElementById("can");
            var ctx = can.getContext('2d');
            can.width = 600;
            can.height = 600;
            can.style.border = '1px solid red';
            
            var data = [{
                'value':0.2,
                'color':'red'
            },{
                'value':0.3,
                'color':'yellow'
            }
            ,{
                'value':0.4,
                'color':'cyan'
            }
            ,{
                'value':0.1,
                'color':'blue'
            }];
            
            var ang = -90;//設(shè)置圓的初始角度
            
            var x0=300,y0=300;
            var radius = 200;
            
            for(var i = 0; i < data.length; i++){
                ctx.beginPath();//因?yàn)槊總€(gè)扇形屬性都不同,所以每次開辟一個(gè)路徑;
                ctx.moveTo(x0,y0);
                var angle = data[i].value*360;//定義扇形寬度(角度)
                ctx.fillStyle = data[i].color;
                /*設(shè)置扇形起點(diǎn)*/
                var startAng = ang*Math.PI/180;
                
                /*設(shè)置扇形的重點(diǎn)*/
                
                var endAng = (ang+angle)*Math.PI/180;
                
                ctx.arc(x0,y0,radius,startAng,endAng);
                ctx.fill();
                //把下個(gè)扇形的起點(diǎn)變成當(dāng)前扇形的終點(diǎn);
                ang+=angle;
            }
            
            
        }());
    </script>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一:canvas簡(jiǎn)介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,880評(píng)論 2 32
  • 一、canvas簡(jiǎn)介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    Looog閱讀 4,038評(píng)論 3 40
  • 一、canvas簡(jiǎn)介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標(biāo)簽 Canvas是一個(gè)矩形區(qū)...
    J_L_L閱讀 1,690評(píng)論 0 4
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,036評(píng)論 25 709
  • 如果金沙江不是從這里流過(guò)那這十幾戶人家的村寨也不會(huì)落在這里。 放眼看去,全是一座座紅的山峁或是-道道紅的...
    楚雄張炳亮閱讀 481評(píng)論 0 6

友情鏈接更多精彩內(nèi)容