1. 程式人生 > >HTML5 Canvas 教程:五、形狀

HTML5 Canvas 教程:五、形狀

五、形狀 Shapes

 

5.1自定義形狀 Custom Shape

 

若要用HTML5畫布繪製自定義形狀,可以建立一個路徑,然後呼叫closePath()方法關閉它。可以使用lineTo()、arcTo()、quadraticCurveTo()或bezierCurveTo()方法來構造構形狀的每個子路徑。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext(

'2d');

 

      // begin custom shape

      context.beginPath();

      context.moveTo(17080);

      context.bezierCurveTo(130100130150230150);

      context.bezierCurveTo(250180320180340150);

      context.bezierCurveTo(420150420120390100);

      context.bezierCurveTo(430403703034050);

      context.bezierCurveTo(32052502025050);

      context.bezierCurveTo(20051502017080);

      // complete custom shape

      context.closePath();

      context.lineWidth = 5;

      context.strokeStyle = 'blue';

      context.stroke();

    </script>

  </body>

</html>

 

以上程式碼演示了在畫布上繪製閉合的自定義圖形,並用藍色填充。

 

5.2矩形 Rectangle

 

要使用HTML5 畫布繪製矩形,可以使用rect()方法而不是用4條連線線構造形狀。一個HTML5畫布矩形用X和Y座標進行定位,並以width和height引數定義矩形的大小。矩形通過左上角的點進行定位。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

 

      context.beginPath();

      context.rect(18850200100);

      context.fillStyle = 'yellow';

      context.fill();

      context.lineWidth = 7;

      context.strokeStyle = 'black';

      context.stroke();

    </script>

  </body>

</html>

 

以上程式碼演示了在畫布上繪製一個矩形,並填充為黃色。

 

 

5.3圓形 Circle

 

要用HTML5畫布繪製一個圓,可以呼叫arc()方法通過定義起始角為0,結束角為2*PI來建立完整的圓弧。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

      var centerX = canvas.width / 2;

      var centerY = canvas.height / 2;

      var radius = 70;

 

      context.beginPath();

      context.arc(centerX, centerY, radius, 02 * Math.PI, false);

      context.fillStyle = 'green';

      context.fill();

      context.lineWidth = 5;

      context.strokeStyle = '#003300';

      context.stroke();

    </script>

  </body>

</html>

 

以上程式碼演示了在畫布上繪製一個圓形,並以綠色填充。

 

 

5.4半圓 Semicircle

 

為了用HTML5 Canvas繪製一個半圓,我們可以使用arc()方法建立一個弧形,並且定義結束角為startAngle+PI。

 

<!DOCTYPE HTML>

<html>

  <head>

    <style>

      body {

        margin: 0px;

        padding: 0px;

      }

    </style>

  </head>

  <body>

    <canvas id="myCanvas" width="578" height="200"></canvas>

    <script>

      var canvas = document.getElementById('myCanvas');

      var context = canvas.getContext('2d');

 

      context.beginPath();

      context.arc(28875700, Math.PI, false);

      context.closePath();

      context.lineWidth = 5;

      context.fillStyle = 'red';

      context.fill();

      context.strokeStyle = '#550000';

      context.stroke();

    </script>

  </body>

</html>

 

以上程式碼演示了在畫布上繪製一個閉合的半圓,並用紅色填充。