Canvas 繪制矩形,圓形,不規則圖形(線條),漸變等圖像效果


 

繪制矩形:

getContext("2d") 對象是內建的 HTML5 對象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

fillStyle 方法將其染成紅色,fillRect 方法規定了形狀、位置和尺寸。

 

 
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
         #myCanvas{ border: 1px dotted #aaaaaa; padding:10px; }
        </style>
    </head>
    
    <body>
        <canvas id="myCanvas" width="300" height="200"> </canvas>
        <script>
        var c = document.getElementById("myCanvas");
        var cxt=c.getContext("2d");
        cxt.fillStyle="#FF0000";
        cxt.fillRect(10,10,150,100); 
        </script>
    </body>
    
</html>

 

繪制圓形:

創建圓形路徑時需要用到對象的arc方法,方法定義如:XXX.arc(x,y,radius,startAngle,endAngle,anticlockwise)

x為圓形起點的橫坐標,y為圓形起點的縱坐標,radius為圓形半徑,startAngle為開始角度,endAngle為結束角度,anticlockwise是否按順時針方向進行繪制。

XXX.beginPath() 創建路徑,XXX.closePath() 結束路徑,然后XXX.fill() 渲染即可。

 

<script>
        var c = document.getElementById("myCanvas");
        var cxt=c.getContext("2d");
        cxt.fillStyle="#ff0000";
        cxt.beginPath();
        cxt.arc(50,50,30,0,Math.PI*2,true);
        cxt.closePath();
        cxt.fill();
</script>

 

繪制線條形:

moveTox,y)指定從何處(x,y)開始,lineTo指定在何處結束,來繪制一條線:

然后 調用stroke()實現繪制。

<script>
        var c = document.getElementById("myCanvas");
        var cxt=c.getContext("2d");
        cxt.moveTo(20,20);
        cxt.lineTo(40,90);
        cxt.lineTo(80,70);
        cxt.lineTo(130,90);
        cxt.stroke();
</script>

 

繪制漸變效果:

使用您指定的顏色來繪制漸變背景,跟繪制普通矩形差不多,只是fillStyle的值為漸變色了而已。

線性漸變:

方法 createLinearGradient(0,0,150,100); 指定了創建線性漸變色范圍

方法 grd.addColorStop(0,"#ff0000");
  grd.addColorStop(1,"#00ff00"); 為漸變色指定漸變“開始與結束”

 假如你想實現一個上下的線性漸變的效果,那么你應該在調用createLinearGradient(x0,y0,x1,y1) 創建漸變的時候保證點(x0,y0),點(x1,y1)連成的直線為豎直直線,也就是x0=x1。

當然你也可以實現對角線漸變的效果,只要(x0,y0) (x1,y1)組成一條對角線就可以了。

創建上下漸變和對角線漸變可以這樣來:

createLinearGradient(0,0,0,300);    // 創建上下漸變

createLinearGradient(10,10,300,300);    // 創建對角線漸變

<script>
        var c = document.getElementById("myCanvas");
        var cxt=c.getContext("2d");
        var grd = cxt.createLinearGradient(0,0,150,100);
        grd.addColorStop(0,"#ff0000");
        grd.addColorStop(1,"#00ff00");
        cxt.fillStyle = grd;
        cxt.fillRect(0,0,150,70);
</script>

 

徑向漸變:

createRadialGradient(x0,y0,r0,x1,y1,r1)    

創建一個沿兩個圓之間的錐面繪制漸變。前三個參數代表一個圓心為(x0,y0)半徑為r0的開始圓,后三個參數代表圓心為(x1,y1)半徑為r1的結束圓。

比如 var grd = cxt.createRadialGradient(100,100,30,100,100,70)

就創建了一個由圓心(100,100)半徑為30的圓 ---》 圓心(100,100)半徑為70的圓  的漸變效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM