publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
skomentuj »

TAGI: html5 , canvas , javascript , tips & tricks

2011-05-02 12:19  |  Paweł Gazda

Jak zacząć rysowanie z elementem Canvas z HTML 5?

Jak zacząć rysowanie z elementem Canvas z HTML 5?

Jedną z dobroci HTML 5 jest Canvas, czyli w wolnych słowach coś, co pozwala malować za pomocą JavaScriptu. W tym tipsie przybliżymy to zagadnienie na prostym przykładzie.

Tag <canvas> jest pewnego rodzaju pustym tagiem <img>. Webmaster ustala wysokość i szerokość obszaru malowania. Zamiast atrybutu "alt", możliwe jest umieszczenie innego kodu HTML w środku tagu canvas jako alternatywnej treści.

Przykład tagu canvas z alternywnym tekstem:

<canvas id="myDrawing" width="200" height="200">

<p>Twoja przeglądarka nie obsługuje canvas.</p>

</canvas>

Zabawę z <canvas> należy rozpocząć od sprawdzenia, czy przeglądarka go obsługuje oraz od stworzenia kontekstu rysującego (drawing context).

 var drawingCanvas = document.getElementById('myDrawing');

// sprawdza czy element jest w DOM i czy przeglądarka obsługuje canvas

if(drawingCanvas.getContext) {

// Inicjuje dwu-wymiarowy tzw. "drawing context"

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

//tutaj umieszczamy komendy canvas

}

Możemy przystąpić do "malowania". Jednym z prostszych przykładów może być uśmiechnięta buźka podobna do tej z testu Acid. Zaczynamy od stworzenia okrągłej twarzy:

context.strokeStyle = "#000000";

context.fillStyle = "#FFFF00";

context.beginPath();

context.arc(100,100,50,0,Math.PI*2,true);

context.closePath();

context.stroke();

context.fill();

W powyższym kodzie oprócz kształtu ustalone zostały kolory zarówno obwiedni, jak i wypełnienia. To dopiero początek, do zrobienia pozostały jeszcze oczy, uśmiech oraz nos.

Cały kod wygląda następująco:

 
<script type="text/javascript">

window.onload = function() {

var drawingCanvas = document.getElementById('myDrawing');

if(drawingCanvas && drawingCanvas.getContext) {

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

// twarz

context.strokeStyle = "#000000";

context.fillStyle = "#FFFF00";

context.beginPath();

context.arc(100,100,50,0,Math.PI*2,true);

context.closePath();

context.stroke();

context.fill();

// oczy

context.strokeStyle = "#000000";

context.fillStyle = "#FFFFFF";

context.beginPath();

context.arc(80,80,8,0,Math.PI*2,true);

context.closePath();

context.stroke();

context.fill();

context.fillStyle = "#009966";

context.beginPath();

context.arc(80,80,5,0,Math.PI*2,true);

context.closePath();

context.fill();

context.strokeStyle = "#000000";

context.fillStyle = "#FFFFFF";

context.beginPath();

context.arc(120,80,8,0,Math.PI*2,true);

context.closePath();

context.stroke();

context.fill();

context.fillStyle = "#009966";

context.beginPath();

context.arc(120,80,5,0,Math.PI*2,true);

context.closePath();

context.fill();

// nos

context.fillStyle = "#000000";

context.beginPath();

context.moveTo(93,100);

context.lineTo(100,93);

context.lineTo(107,100);

context.lineTo(100,107);

context.closePath();

context.fill();

 

// uśmiech

context.strokeStyle = "#000000";

context.beginPath();

context.moveTo(70,110);

context.quadraticCurveTo(100,150,130,110);

context.quadraticCurveTo(100,150,70,110);

context.closePath();

context.stroke();

}

}

</script>

Efektem końcowym będzie taki oto obrazek:

 

źródło: thinkvitamin.com

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
skomentuj »

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł