prezentacjaInz2

Download Report

Transcript prezentacjaInz2

WIZUALIZACJA
INFORMACJI TEKSTOWEJ
– WSTĘP DO HTML 5
CANVAS
Autor
prezentacji:
Michał
Kołkowski
Promotor:
prof. dr hab.
Włodzisław
Duch
SPIS TREŚCI
1.
2.
3.
4.
5.
6.
7.
8.
9.
Ogólnie o Canvasie
Utworzenie szablonu do pracy z Canvas
Primitywy, krzywe i ścieżki
Przesłanianie
Importowanie obrazków, skalowanie, wycinanie
Dodawanie tekstu
Style i kolory
Podstawowe przekształcenia: translacja, rotacja, skalowanie
Podstawy animacji
CZYM JEST CANVAS ?
 <canvas> to znacznik HTML, który umożliwia rysowanie grafiki
“w locie” używając skryptów(z reguły jest to JavaScript).
 Definiowany w kodzie HTML z użyciem atrybutów: height i
width
 Zawiera wiele metod umożliwiających rysowanie ścieżek,
wielokątów, okręgów, znaków, dodawania grafik I wiele
innych.
 Element canvas nie jest wspierany w starszych
przeglądarkach. Wymaga co najmniej Firefox 1 .5, Opera 9 ,
nowszej wersji Safari lub Internet Explorer 9.
DODANIE ELEMENTU CANVAS DO PLIKU
HTML
 Plik index.html
 Canvas nie ma właściwości alt ani src jak <img>
 W implementacji Apple Safari nie jest wymagane zamknięcie
znacznika, jednak wymaga tego Firefox.
ALTERNAT YWNA ZAWARTOŚĆ
 Gdy przeglądarka nie wspiera elementu <canvas>, wtedy
pokazywana jest zawartość znacznika i analogicznie gdy
obsługuje zawartość znacznika nie jest pokazywana.
Dodanie skryptów
 W sekcji <HEAD> dodajemy plik skryptu js.
 Tworzymy plik skrypt.js
OPIS PLIKU SKRYPT.JS
 Funkcja anonimowa wywoływana jest w momencie gdy strona
zostanie załadowana.
 Pobieram obiekt będący odwołaniem do elementu canvas z
użyciem getElementById()
 Pobieram kontekst rysowania z użyciem funkcji getContext()
 Można wykonać specjalne zadania jeśli przeglądarka nie
obsługuje elementu canvas.
PODSTAWY RYSOWANIA
 Prostokąt wypełniony kolorem
 Punkt (0,0) umieszczony jest w lewym górnym rogu. Oś x
rośnie w prawo, a oś y w dół. Wszystkie pozycje umieszczone
są relatywnie do położnia ( 0,0)
PRYMIT YWY I ŚCIEŻKI
 Canvas wspiera tylko jeden rodzaj prymitywów – prostokąty.
Wszystkie pozostałe muszą być stworzone na podstawie linii.
 Ścieżki – z ich pomocą możemy tworzyć inne kształty –
wymagają rozpoczęcia beginPath() I zakonczenia closePath()
pomiędzy znacznikami używamy funkcji lineTo(x,y) oraz
moveTo(x,y).
ŚCIEŻKI – CIĄG DALSZY
 Rysowanie okręgu – uzywamy polecenia arc()
KRZYWE BEZIERA
 Krzywa Beziera – parametryczna krzywa. Posiada dwa punkty
kontrolne (P1 ,P2)
PRZESŁANIANIE
 Możemy ustalić co stanie się, gdy dwa obiekty najdą na siebie.
 Należy to wpisać przed rysowaniem obiektu.
 Możliwe efekty przedstawiam na następnej stronie.
MOŻLIWE EFEKT Y PRZESŁANIANIA
DODAWANIE OBRAZKÓW
 Dodawnie obrazków do canvas przebiega w dwóch krokach.
1. Uzyskujemy obiekt obrazka w JavaScript z użyciem jednej z metod:
a.
b.
c.
d.
documents.getElemenetsByTagName()
documents.getElementById()
Wszystkei grafiki dostępne są w zbiorze document.images
Możemy też zastosować kod JavaScript:
2. Rysujemy obrazek na canvasie z użyciem funkcji drawImage()
INNE PRZYDATNE RZECZY
 Po tablicy obrazków można iterować i sprawdzać np. id czy tag
z pomocą funkcji getAttribute()
RYSOWANIE OBRAZKA
 Wstawienie obrazka na płótno realizujemy z pomocą prostej
funkcji:
 Możemy przekazać funkcji drawImage() czwarty i piąty
argument – kolejno width i height. Spowoduje to
wyskalowanie wstawionego obrazka.
 Funkcja może również służyć do przycinania obrazka jeśli
zastosujemy:
sx,sy – lewy górny róg źródła sWidth,sHeight – rozmiary źródła
dx,dy – lewy górny róg wyniku dWidth, dHeight – rozmiary
wynikowe
PRZYKŁAD WYCINANIA
 Przykład operacji wycinania ze strony Mozilla Developer
Network
PODSTAWY DODAWANIA TEKSTU
Istnieją oczywiście inne metody pozwalające na tworzenie
zaawansowanych efektów – ale nie omawiam ich w tej
prezentacji.
ST YLE I KOLORY
 Wczesniej używaliśmy już funkcji fillStyle() oraz strokeStyle().
Co jeszcze możemy tej funkcji przekazać?




Nazwy kolorów np. “blue”
“rgb(255,155,0)”
“rgba(255,15,23,1)” – zawiera przezroczystość
“#FFA500” – standardowo jak w HTML
 Jak widać wszystko to jest w cudzysłowach, czyli jest
stringiem. Daje nam to potężne możliwości tworzenia takich
stringów w locie(string + liczba to string)
ST YLE I KOLORY CIĄG DALSZY
 Inne możliwości modyfikowania stylu:
 lineWidth przyjmuje wartość w pikselach
odpowiadającą szerokości rysowanej linii.
 lineCap przyjmuje wartości ‘butt’,’round’ i
‘square’. Definiuje jakie krawędzie przyjmują zakonczenia linii
 lineJoin definiuje jak dwa stykające się obiekty np. linie czy krzywe
łączą się. Możliwe typy ‘round’, ‘bevel’, ‘miter’
PODSTAWY PRZEKSZTAŁCEŃ
 Czym jest kontekst rysowania ? Jest to zbiór wszystkich
nadanych styli i transformacji.
 Stany są trzymane na stosie. Za każdym razem gdy używamy
save() obecny stan wrzucany jest na stos. Gdy używamy
restore() ustawiany i usuwany ze stosu jest element na jego
górze.
TRANSLACJA
 Przemieszcza cały canvas o x,y. Jeśli zachowamy wcześniej
stan, będziemy mogli przywrócić dawne położenie.
ROTACJA
 Rotacja płótna wokół obecnego położenia
SKALOWANIE
 Skalować możemy nie tylko obrazki, ale też całe płótno. X – to
poziomy współczynnik skalowania, a Y pionowy. Wartości
większe od 1 .0 powiększają, a mniejsze zmniejszają.
PODSTAWY ANIMACJI
 SCHEMAT ANIMACJI W CANVAS
1.
2.
3.
4.
Wyczyść płótno
Zapisz stan za pomocą metody save()
Narysuj stan obrazków w aktualnej klatce czasu
Przywróc stan za pomocą metody restore()
 Do animacji przyda nam się pętla czasu – zastosujmy tutaj
jedną z metod JavaScript na timer:
 setInterval wywołuje
drawFunction co 100ms
 setTimeout wykonuje
funkcję tylko raz po 100 ms, potem trzeba go znowu ustawić.
PRZYKŁAD ANIMACJI Z UŻYCIEM TIMERA
I TRANSLACJI
ŹRÓDŁA
 https://developer.mozilla.org/
 http://www.html5canvastutorials.com/
 HTML 5 Canvas – S. Fulton (O’Reilly)
KONIEC
SERDECZNIE DZIĘKUJĘ
ZA
WYSŁUCHANIE PREZENTACJI !