HTML5-Tutorium: Canvas: Hello World 02: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{HTML5-Tutorium:Canvas:HelloWorld:Menü}} | {{HTML5-Tutorium:Canvas:HelloWorld:Menü}} | ||
'''Musterlösung''': [ | '''Musterlösung''': [https://glossar.hs-augsburg.de/beispiel/tutorium/es5/hello_world_canvas/WK_HelloWorldCanvas02/index.html <code>index.html</code>] | ||
([ | ([https://glossar.hs-augsburg.de/beispiel/tutorium/es5/hello_world_canvas/WK_HelloWorldCanvas02/ SVN-Repository]) | ||
hzuführen.<ref>[https://www.khronos.org/webgl/ WebGL: OpenGL ES 2.0 for the Web]</ref> | |||
== | ==Use Cases== | ||
Wie im [[HTML5-Tutorium: JavaScript: Hello World 01 ersten]] und | |||
HTML5-Tutorium: JavaScript: Hello World 02|zweiten]] Teil des Hello-World-Tutoriums soll die ganze Welt begrüßt werden. | |||
Allerdings erfolgt die Ausgabe diesmal mit Hilfe eines Canvas-Elements. | |||
== | ==Erstellen eines neuen Projektes== | ||
Erstellen Sie ein neues Projekt „<code>HelloWorldCanvas01</code>“. | |||
Kopieren Sie anschließend die Dateien „<code>index.html</code>“ und „<code>main.css</code>“ | |||
aus dem [https://glossar.hs-augsburg.de/beispiel/tutorium/es5/hello_world/WK_HelloWorld02/ zweiten Teil des Tutoriums] und passen Sie den Titel in der HTML-Datei an. | |||
==<code>index.html</code>== | |||
Ersetzen Sie das Body-Element Ihrer HTML-Datei durch folgendes Body-Element: | |||
<source lang="html5"> | |||
<body> | |||
<canvas id="canvas"> | |||
Unfortunately, your browser doesn't support HTML5! | |||
</canvas> | |||
<script type = "text/javascript" src = "main.js"></script> | |||
</body> | |||
</source> | |||
Anstelle von HTML-Text-Elementen wie „<code>h1</code>“ und „<code>p</code>“ | |||
wird ein Canvas-Element zur Ausgabe von „Hello, World!“ verwendet. | |||
Da die Ausgabe des Textes nur mittels JavaScript-Anweisungen erfolgen kann, | |||
wird am Endes des Dokuments die JavaScript-Datei „<code>main.js</code>“ | |||
eingelesen. | |||
== | ==<code>main.js</code>== | ||
Wie üblich wird die Web-Anwendung mit Hilfe der Datei „<code>main.js</code>“ | |||
initialisiert und gestartet. | |||
Viel muss hier nicht gemacht werden. Zunächst muss das | |||
Canvas-Element, auf das der Text geschrieben werden soll, | |||
aus dem HTML-Dokument geholt werden: | |||
== | <source lang="javascript"> | ||
var l_canvas = document.getElementById('canvas'); | |||
</source> | |||
Die Größe diese Canvas-Elements kann per JavaScript festgelegt werden. | |||
Man könnte sie auch direkt in HTML festlegen, aber die JavaScript-Lösung | |||
ist flexibler. Es bestünde hier {{zB}} die Möglichkeit, | |||
die Größe abhängig vom Ausgabedevice festzulegen: | |||
<source lang="javascript"> | <source lang="javascript"> | ||
l_canvas.width = 300; | |||
l_canvas.height = 60; | |||
</source> | </source> | ||
Als Größeneinheit kommt das Pixelmaß zu Einsatz. Die Bühne dieses Canvas-Elements ist 300 Pixel breit und 60 Pixel hoch. | |||
Für weiteren Aktionen benötigt man das Kontext-Objekt, mit dessen Hilfe | |||
Pixelinformationen zu Canvas übermittelt werden sollen. | |||
< | Wir verwenden zu diesem Zweck den 2D-Kontext. Das ist der einzige Kontext, der bislang vom [[W3C]] standardisiert wurde.<ref>[https://www.w3.org/TR/2dcontext/ W3C: HTML Canvas 2D Context]</ref> | ||
/ | (Eine Alternative wäre der [[WebGL]]-Kontext, der das Rendern von 3D-Objekten mit Hilde von OpenGL unterstützt.<ref>[ https://www.khronos.org/webgl/ Kronos Group: WebGL]</ref> Das führt hier aber zu weit.) | ||
<source lang="javascript"> | |||
var l_context = l_canvas.getContext('2d'); | |||
</source> | </source> | ||
Es gibt diverse 2D-Context-Befehle, die keine direkte Auswirkung auf die Bühne haben, sondern nur bestimmte Werte | |||
für nachfolgende Befehle festlegen. Typische Werte sind die Vordergrundfarbe, die Hintergrundfarbe, die Strichstärken, Fonteigenschaften etc. | |||
die | Die einmal eingestellten Werte werden solange verwendet, biss sie durch andere Anweisungen überschreiben werden. | ||
Da wir einen Text ausgeben wollen, sollten wir zuvor geeignete Fonteigenschaften auswählen: | |||
<source lang=" | <source lang="javascript"> | ||
l_context.font = 'bold 40px "Times New Roman", Times, serif'; | |||
</source> | |||
Nun muss der Text nur noch auf der Bühne des Canvas-Elements ausgegeben werden. | |||
<source lang="javascript"> | |||
l_context.fillText('Hello, World!', 35, 43); | |||
</source> | |||
Zusätzlich zum Text werden eine $x$- und eine $y$-Koordinate angegeben. Der Punkt $(x,y) = (0,0)$ | |||
bezeichnet die linke obere Ecke des Canvas-Elements. Größere $x$-Werte bezeichnen Punkte, die weiter rechts liegen, größere | |||
$y$-Werte bezeichnen Punkte, die – im Gegensatz zum mathematischen Koordinatensystem – weiter unter liegen. | |||
Der Referenzpunkt des Textes ist das linke Ende der Grundlinie des Zeichensatzes. | |||
Insgesamt sieht die Datei „<code>main.js</code>“ somit folgendermaßen aus: | |||
<source lang="javascript"> | |||
/** | |||
* Initializes and starts the web app. | |||
*/ | |||
(function() | |||
{ | |||
// Initialize the canvas. | |||
var l_canvas = document.getElementById('canvas'); | |||
l_canvas.width = 300; | |||
l_canvas.height = 60; | |||
// Print text on the canvas. | |||
var l_context = l_canvas.getContext('2d'); | |||
l_context.font = 'bold 40px "Times New Roman", Times, serif'; | |||
l_context.fillText('Hello, World!', 35, 43); | |||
}()); | |||
</source> | </source> | ||
== | ==Quellen== | ||
<references/> | |||
<ol start ="6"> | |||
<li> {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</li> | |||
<li> http://www.html5canvastutorials.com/tutorials/html5-canvas-element/ HTML5 Canvas Text Tutorial]</li> | |||
</ol> | |||
==Siehe auch== | |||
* {{SieheAuch|Pilgrim (2011)}} | |||
* [http://www.w3schools.com/html/html5_intro.asp w3schools.com: HTML5] | |||
* [https://html.spec.whatwg.org/ HTML Living Standard] | |||
== | |||
* [ | |||
* | |||
==Fortsetzung des Tutoriums== | ==Fortsetzung des Tutoriums== | ||
Sie sollten nun [[HTML5-Tutorium: Canvas: Hello World | Sie sollten nun [[HTML5-Tutorium: Canvas: Hello World 02|Teil 2 des Tutoriums]] bearbeiten. | ||
[[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]] | [[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]] |
Version vom 26. Oktober 2016, 16:36 Uhr
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen:
Korrektheit: 4 (großteils überprüft) |
Umfang: 4 (unwichtige Fakten fehlen) |
Quellenangaben: 5 (vollständig vorhanden) |
Quellenarten: 5 (ausgezeichnet) |
Konformität: 4 (sehr gut) |
HTML-Tutorium Hello World: JavaScript | Canvas | SVG
Musterlösung: index.html
(SVN-Repository)
hzuführen.[1]
Use Cases
Wie im HTML5-Tutorium: JavaScript: Hello World 01 ersten und HTML5-Tutorium: JavaScript: Hello World 02|zweiten]] Teil des Hello-World-Tutoriums soll die ganze Welt begrüßt werden.
Allerdings erfolgt die Ausgabe diesmal mit Hilfe eines Canvas-Elements.
Erstellen eines neuen Projektes
Erstellen Sie ein neues Projekt „HelloWorldCanvas01
“.
Kopieren Sie anschließend die Dateien „index.html
“ und „main.css
“
aus dem zweiten Teil des Tutoriums und passen Sie den Titel in der HTML-Datei an.
index.html
Ersetzen Sie das Body-Element Ihrer HTML-Datei durch folgendes Body-Element:
<body>
<canvas id="canvas">
Unfortunately, your browser doesn't support HTML5!
</canvas>
<script type = "text/javascript" src = "main.js"></script>
</body>
Anstelle von HTML-Text-Elementen wie „h1
“ und „p
“
wird ein Canvas-Element zur Ausgabe von „Hello, World!“ verwendet.
Da die Ausgabe des Textes nur mittels JavaScript-Anweisungen erfolgen kann,
wird am Endes des Dokuments die JavaScript-Datei „main.js
“
eingelesen.
main.js
Wie üblich wird die Web-Anwendung mit Hilfe der Datei „main.js
“
initialisiert und gestartet.
Viel muss hier nicht gemacht werden. Zunächst muss das Canvas-Element, auf das der Text geschrieben werden soll, aus dem HTML-Dokument geholt werden:
var l_canvas = document.getElementById('canvas');
Die Größe diese Canvas-Elements kann per JavaScript festgelegt werden. Man könnte sie auch direkt in HTML festlegen, aber die JavaScript-Lösung ist flexibler. Es bestünde hier z. B. die Möglichkeit, die Größe abhängig vom Ausgabedevice festzulegen:
l_canvas.width = 300;
l_canvas.height = 60;
Als Größeneinheit kommt das Pixelmaß zu Einsatz. Die Bühne dieses Canvas-Elements ist 300 Pixel breit und 60 Pixel hoch.
Für weiteren Aktionen benötigt man das Kontext-Objekt, mit dessen Hilfe Pixelinformationen zu Canvas übermittelt werden sollen.
Wir verwenden zu diesem Zweck den 2D-Kontext. Das ist der einzige Kontext, der bislang vom W3C standardisiert wurde.[2] (Eine Alternative wäre der WebGL-Kontext, der das Rendern von 3D-Objekten mit Hilde von OpenGL unterstützt.[3] Das führt hier aber zu weit.)
var l_context = l_canvas.getContext('2d');
Es gibt diverse 2D-Context-Befehle, die keine direkte Auswirkung auf die Bühne haben, sondern nur bestimmte Werte für nachfolgende Befehle festlegen. Typische Werte sind die Vordergrundfarbe, die Hintergrundfarbe, die Strichstärken, Fonteigenschaften etc. Die einmal eingestellten Werte werden solange verwendet, biss sie durch andere Anweisungen überschreiben werden.
Da wir einen Text ausgeben wollen, sollten wir zuvor geeignete Fonteigenschaften auswählen:
l_context.font = 'bold 40px "Times New Roman", Times, serif';
Nun muss der Text nur noch auf der Bühne des Canvas-Elements ausgegeben werden.
l_context.fillText('Hello, World!', 35, 43);
Zusätzlich zum Text werden eine $x$- und eine $y$-Koordinate angegeben. Der Punkt $(x,y) = (0,0)$ bezeichnet die linke obere Ecke des Canvas-Elements. Größere $x$-Werte bezeichnen Punkte, die weiter rechts liegen, größere $y$-Werte bezeichnen Punkte, die – im Gegensatz zum mathematischen Koordinatensystem – weiter unter liegen. Der Referenzpunkt des Textes ist das linke Ende der Grundlinie des Zeichensatzes.
Insgesamt sieht die Datei „main.js
“ somit folgendermaßen aus:
/**
* Initializes and starts the web app.
*/
(function()
{
// Initialize the canvas.
var l_canvas = document.getElementById('canvas');
l_canvas.width = 300;
l_canvas.height = 60;
// Print text on the canvas.
var l_context = l_canvas.getContext('2d');
l_context.font = 'bold 40px "Times New Roman", Times, serif';
l_context.fillText('Hello, World!', 35, 43);
}());
Quellen
- ↑ WebGL: OpenGL ES 2.0 for the Web
- ↑ W3C: HTML Canvas 2D Context
- ↑ [ https://www.khronos.org/webgl/ Kronos Group: WebGL]
- Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)
- http://www.html5canvastutorials.com/tutorials/html5-canvas-element/ HTML5 Canvas Text Tutorial]
Siehe auch
- Pilgrim (2011): Mark Pilgrim; Canvas – Dive Into HTML5; http://diveintohtml5.info/; 2011; Quellengüte: 2 (Web)
- w3schools.com: HTML5
- HTML Living Standard
Fortsetzung des Tutoriums
Sie sollten nun Teil 2 des Tutoriums bearbeiten.