A html & lt; vászon & gt; Az elem egy erőteljes megoldás a pixel alapú grafika létrehozásához az interneten JavaScript , és lehetővé teszi, hogy néhány figyelemre méltó hatásokat hozzon létre egy kis gyakorlatra.
Ebben a bemutatóban megnézzük a vászon objektum létrehozását, egyszerű képeket rajzolunk rajta, és a vizuálisok animálására.
A vászon alapvetően egy HTML elem, amelyet az oldalon helyez el, a skála, amely lefedi a kívánt területet, és ezután felhívhatja. Az induláshoz létre kell hoznunk egy egyszerű oldalt egy vászonobjektummal.
& lt;! Html & gt doctype;
& lt; html & gt;
& lt; head & gt;
& lt; meta Charset = 'UTF-8' / & gt;
& lt; Cím & gt; html vászon demo & lt; / cím & gt;
& link rel = 'stylesheet' href = 'custom.css' / & gt;
& lt; script src = "canvas.js" & gt; & lt; / script & gt;
& lt; / head & gt;
& lt; test & gt;
& lt; vászonazonosító = "html-vászon" & gt;
& lt; / test & gt;
& lt; / html & gt;
Ha rengeteg helyet szeretne játszani, azt szeretnénk, ha a vászonunk kitölti az egész képernyőt. Azt is adunk egy fekete háttér, így tudod, hogy ez határozottan ott van. Ez valójában egy kicsit trükkös lehet, anélkül, hogy görgetősávokat vagy fehér helyet végezne. Az alábbi CSS-nek gondoskodnia kell róla.
vászon {
Magasság: 100VH;
Szélesség: 100VW;
Pozíció: abszolút;
Háttérszín: # 000000;
}
Margó: 0;
Padding: 0;
}
Ezután hozzá kell adnunk néhány JavaScriptet a használni kívánt vászon beállításához. A DOMCONTENTULTED EVENT-ot összekapcsoljuk, hogy a parancsfájl ne próbálja meg futtatni, mielőtt a vászonelem készen áll. Azt is meg kell állapítanunk, hogy a vászon felbontás megfeleljen az általa fedett területnek - ellenkező esetben a vászon növelné a felbontást, ami elmosódott vagy pixellált grafikákhoz vezet.
Dokumentum.addeventlistener ("DOMCONTENTOMED", funkció () {
var coras = document.getelementbyid ("html-vászon");
var körök = [];
VAR RADIUS = 50;
vavas.width = vászon.clientwidth;
vászon.height = canvas.clientHeight;
var-kontextus = vasas.getcontext ("2D");
}, FALSE);
Észre fogod venni, hogy az utolsó lépésben valamit "kontextusnak" neveztünk. Így fordul elő a vászonra. A legegyszerűbb gondolkodni a kontextusra, mint egy ecset, amelyet különböző vonalakat, íveket és alapformákat használhatunk.
Amit most megtehetünk, az a kontextusunkat, hogy használjon egy vonórekő funkciót, amely 360 fokos ívet hoz létre - azaz egy kör. Ezt úgy tesszük, hogy elmondjuk a kontextusnak az ív meghatározását, a határokat a határ és a kitöltéshez, majd emelje fel a töltés () és a stroke () funkciókat, hogy ténylegesen felhívja az alakot (a stroke felhívja a határt).
Funkcióhúzó (x, y, sugar, határ, border_colour, fill_colour)
{
kontextus.beginpath ();
kontextus.arc (x, y, sugarú, 0,2 * math.pi);
kontextus.strokestyle = border_colour;
kontextus.Fillstyle = fill_colour;
kontextus.Linewidth = határ;
kontextus.Closepath ();
kontextus.fill ();
kontextus.Stroke ();
}
Nagy. Van egy funkció, amely körvonalakat vonhat. Most van szükségünk valamire. Húzzuk meg a kódot a 3. lépésben, hogy létrehozzunk egy tömböt, amely leírja a kör objektumokat. Az egyes körök X és Y koordinátjait, színét és irányát tárolja.
Ezt a tömbstruktúrát, nem pedig csak átrajzoljuk a köröket, mert lehetővé teszik számunkra, hogy a köröket a tömb tartalmának újra áthúzzuk.
a (var i = 0, én & lt; 20, i ++) {
var x = sugar + (Math.Random () * (vasas.width - (2 * sugar)));
var y = sugar + (Math.Random () * (vavas.height - (2 * sugar)));
var color = randomcolour ();
var irány = Math.Random () * 2.0 * Math.pi;
körök.push ({x: x, y: y, szín: szín, irány: irány});
húz(); }
Az utolsó lépésben néhány új funkciót használtunk, amelyeket még nem határoztak meg. Kezdjük véletlenszerűen (). Ez lesz olyan segédprogram, amely egy színeket ábrázoló randomizált hexadecimális karakterláncot ad vissza. Ez meglehetősen egyszerű ahhoz, hogy megvalósítsa.
Funkció VéletlenColour () {
var chars = '0123456789abcdef';
var color = '#';
(var i = 0; i & lt; 6; i ++) {
Color + = Chars [Math.Floor (Math.Random () * 16)];
}
visszatérési szín; }
Most készen állunk arra, hogy a rajzokat a rajz () függvény végrehajtásával hozzuk létre. Ez két kulcsot fog tenni. Először is törli a vászonot a ClearRect () funkció használatával. Ez akkor fontos lesz, amikor animáljuk a köröket, hogy elkerüljék az új keret rajzolását a régi tetején. Ezután idézi át a tömbön keresztül, és mindegyik kört a vászonra húzzuk a vászonra, vonzati funkciónk segítségével.
Funkció rajz () {
kontextus.Contrect (0, 0, vászon.Hát, vászon.height);
körök.Forforeach (funkció (kör) {
húzózik (kör.x, kör, kör, sugár, 5, kör.colour, kör.colour);
}); }
Ha most kipróbálod, látni fogsz néhány statikus köröket az oldalon. De szeretnénk animálni őket. Ehhez többféle módon kell meghosszabbítani () függvényünket. Először is használjuk a köret.
Ezután fogjuk használni a beépített függvény az úgynevezett requestAnimationFrame hogy rekurzívan meghívja a sorsolás () függvényt. requestAnimationFrame lehetővé teszi a böngésző, hogy mikor hívja a funkció újra, így nem kell végrehajtani időzítő kiszámolni, hogy felhívja a következő képkockára.
Funkció rajz () {
kontextus.Contrect (0, 0, vászon.Hát, vászon.height);
körök.Forforeach (funkció (kör) {
kör.x = circle.x + math.cos (kör.Direction);
circle.y = circle.y + math.sin (kör.Direction);
húzózik (kör.x, kör, kör, sugár, 5, kör.colour, kör.colour);
});
kérdőíves (rajz);
}
Még mindig hiányzik egy dolog. A körök most csak eltűnnek a képernyő szélén. Tedd vissza őket. Ehhez hozzáadunk egy hívást egy új funkcióhoz, ugrál (kör), a rajz () funkció foreach hurokjában.
A Bounce funkció meg fogja határozni, ha egy kör a képernyő szélén van, és megfelelően állítsa be az irányértékét.
Funkció Bounce (kör) {
Ha ((kör.x-sugar) & lt; 0) || ((kör.y - sugarú) & lt; 0) || ((kör.x + sugár) & gt; vászon.Hát) || ((kör. Y + sugar) & gt; vászon.height)))) {
kör.Direction + = (math.pi / 2);
}
ha (kör.Direction & gt; (2 * math.pi)) {
circle.direction - = (2 * math.pi);
}
}
Ez a cikk eredetileg megjelent Web designer 266. kiadás. Vásárolja meg itt.
Kapcsolódó cikkek:
(Kép hitel: jövő) UGORJ: Alapvető parancsikonok Interf�..
(Kép hitel: Jason Parnell-Brookes) UGORJ: Photoshop Express ..
Festés digitálisan a Rajzolaj tabletta és rajzolt szoftver Artrage. A grafikus tabletta vagy a mobileszközön ..
(Kép hitel: Jill Tisbury) A tanulás során Hogyan kell felhívni az állatokat , az egyik trükkös ..
Megragadja a fogantyút színelmélet egy kicsit túlságosan túl sok, mint a tanulás matematika vagy tudomány. Úgy érzi, hogy csak kreatív és kifejezni magát, nem dolg..
A céloldala kulcsfontosságú elem az Ön számára honlap elrendezés . Ez az első igazi lehetőség, hogy be k..
Vannak, akik az árnyékok trükkös keverését találják, gyakran megpróbálnak teljesen új színt összekeverni. Sajnos az ..
Öt kiemelkedő művész mutatja a kereskedelmük trükkjeit, elmagyarázva, hogyan lehet a városi, sci-fi, természetes, stiliz..