tegning med to. er

, tegning med to. er,,,,, 2,,,,,,,,,,,, 75,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, avanceret grafik er en stor del af nettet i disse dage, men der er et par forskellige renderers i blandingen.du kunne bruge lærred, naturligvis, men perspektivgruppen og webgl er også muligheder.i denne forelæsning, vi gennemgår en forholdsvis ny tegning bibliotek, two.js, som giver en api - det er det samme med alle disse tre renderers.hvis du er klar, lad os tjekke det ud!,,,, trin 1 - oprettelse, er det første skridt at skabe et, to, f.eks. og læg den på side.en, to, contstructor tager en genstand med en række parametre, var to = 2 ((fullscreen: sande}); i dette tilfælde, vi bruger, fullscreen, valg, som gør, at område tage hele browser vindue.hvis vi vil have vores tegning område, der har en bestemt størrelse, vi kan bruge, bredde og højde, egenskaber i stedet; disse både tage et nummer til en pixel - værdi.der er også, autostart, parameter, hvis dette er fastsat til en tegnefilm løber ikke væk, når der er ladt. der er også den type parameter: dette beslutter, hvilke renderer vil blive anvendt.du kan vælge mellem lærred, perspektivgruppen og webgl.du kan ikke bare type, navn, selvom: man bruger et bibliotek konstant former: enten, to typer. lærred, to typer. perspektivgruppen, eller to typer. webgl,.bare for at være sikker, two.js vil bare misligholdelse af perspektivgruppen; det gør ikke nogen form for feature detection for at se, hvad browser vil støtte.du bliver nødt til at gøre det på egen hånd, og jeg tror, det er en god idé: redskaber, der er én ting, og det), så når vi har en, to, f.eks. hvad skal vi gøre med det.først vil du sætte det til side.It has an ,appendTo, method that takes an HTML element as a paramter, so let's set this up:, <div id="main"></div> <script src="./two.min.js"></script> <script src="./main.js"></script>,Then, in ,main.js,, we start with this:, var el = document.getElementById("main"), two = new Two({ fullscreen: true }); two.appendTo(el);,With all this set up, we're ready to actually draw a few shapes., , Step 2 - Drawing Basic Shapes,We'll begin with basic shapes; while we can create our own complex shapes with ,new Two.Polygon,, most simple shapes can be made with a few handy methods.,Let's start with circles. det, makecircle, funktion kræver tre parametre:, var cirkel = to. makecircle (110, 110, 100); circle.fill = "# 881111" to. update(); vi vil revidere nedefra og op, nemlig opfordringen til, two.update, ajourfører trækker område og rent faktisk gør indholdet.støtte til den cirkel, de første to parametre er x - og y - koordinater til midten af ringen.så den tredje parameter er radius for cirklen.de to. - opgaver tilbage, two.polygon, objekt.så går vi igennem denne forelæsning, vil du se flere egenskaber og metoder, som de kan bruge på disse former.her er den første:, fyld,.så du tror, det er den fylde farve: enhver gyldig css vil gøre., bør resultatet ser sådan ud:,, hvad med kvadratisk eller rektangulær form?det, two.makerectangle, metode tager fire parametre.ligesom den cirkel, den første af to parametre, mark, x og y, koordinater til centrum af rektanglet.så, param tre er, bredde og param fire er, højde, for det rektangel., var korrekte = to. makerectangle (115, 90, 150, 100); rect.fill = "orange". rect.opacity = 0, 25; direkte. nostroke(); to. update(); igen, vi bruger, fyld - ejendom.vi er også at anvende, uklarhed, ejendom, som accepterer decimalværdi mellem 0 og 1, vi har kvartal uklarhed her.endelig, vi bruger, nostroke, metode, som fjerner den slagtilfælde (grænseoverskridende) fra rektangel.her er, hvad vi har:,, ellipses er ret enkelt, for som du tror, de første to parametre, der er centrum for den ellipse.så vi har bredde og højde:, var ellipse = to. makeellipse (100, 40 90 30); ellipse.stroke = "# 112233" ellipse.linewidth = 5, ellipse. nofill(); to. update(); for nye egenskaber: vi har, slagtilfælde, der fastsætter farve af grænsen og at fastsætte bredden af den grænse, vi bruger, linewidth, ejendom.så husk, nostroke,?det, nofill, metode er den samme, men fjerner fylde farve til vores form (uden, at vores former standard til en hvid fylde). naturligvis den simpleste form linjer., var linje = to. makeline (10, 10, 110, 210); line.linewidth = 10 line.stroke = "rgba (255 0, 0 0, 5)"; de første to parametre, x og y for den ene ende af overensstemmelse; det andet er i den anden ende.,, sandsynligvis det mest akavede form at skabe er kurven.det, two.makecurve, metode tager mange sæt, x, y, parametre, som du gerne ville - hvert par er et punkt, hvor den linje vil kurve.så de sidste parameter er en boolean: gøre det rigtigt, hvis form er åben, og de ender ikke sammen.hvis du vil two.js at trække en linje, der forbinder de to ender af kurver, der bør være falsk,., var kurve = to. makecurve (50, 100, 120, 50, 140, 150 - 160, 50, 180, 150, 190, 100, sande); curve.linewidth = 2, curve.scale = 1,75; curve.rotation = math.pi /2 //kvarte omdrejning kurve. nofill() og, du ved, linewidth,, men hvad med, omfanget,?vi kan bruge dette til at svinde eller udvide vores form; her, vi udvider i form af 175%.så, vi kan bruge, rotation, at skifte vores udformning af en række radianer; vi laver 90 grader, der er halvt pi radianer. endelig kunne man mene, at vi har lavet form, vi vil ikke få en fylde; men det er ikke sandt.en unclosed kurve vil stadig have en fylde, så vi bruger, nofill, for at fjerne de udfylde og ender med kurven.,, i form af type er fange alle: det er den generelle polygon.det er faktisk ret meget, ligesom den kurve, undtagen linjerne går lige fra punkt til punkt., var poly = to. makepolygon (50, 100, 120, 50, 140, 150 - 160, 50, 180, 150, 190, 100); poly.linewidth = 4; poly.translation = 2. vektor (60 60); poly.stroke = "# cccccc" poly.fill = "# ececec", som med kurve, vi har så mange par koordinater, som vi gerne så det, og så den åbne boolean, der sætter det til, falske, så den form, vil blive lukket. vi er også at fastsætte en oversættelse, her. dette gør det muligt for os at flytte ud til venstre eller højre og op eller ned.vi er ved at gøre, oversættelse, ejendomsret til en, two.vector, f.eks.det, two.vector, konstruktøren skal to parametre: en, x og y.de ender med at blive koordinater til midten af form.du har faktisk ikke at skabe en ny kurs for det; du kan tildele, x og y, værdier, fortegnelse:, poly. oversættelse. x = 60; poly. oversættelse. y = 60. her er, hvad vi får:,, trin 3 - grupper, så langt vi har arbejdet med de enkelte form genstande, men det er possble gruppe former og interagere med dem som et stykke. kan du lave en gruppe med, two.makegroup metode.så kan vi bruge det, tilføje, en metode til at tilføje en form for gruppen, var gruppe = to. makegroup(), direkte = to. makerectangle (0, 0, 100, 100) circ = to. makecircle (50, 50, 50). < /p > rect.fill = "rød" circ.fill = "blå" gruppe. der tilsættes (direkte); - gruppen. der tilsættes (colreg); 2. update();, hvis du løber, er det helt grundlæggende, ligesom du ville få uden, gruppe, bits.,, men så kan vi arbejde sammen med gruppen, ved hjælp af de forandringer, vi kan gøre på individuel form.for eksempel, hvad med en oversættelse?gruppe. oversættelse. x = 100; gruppen. oversættelse. y = 100; to. update();, som med regelmæssige former, grupper er bestilt bagfra, som de er skabt.men hvis du tilføjer en form for en gruppe, og en anden gruppe, der vil blive fjernet fra den første gruppe.det er fint, hvis du er nødt til at ændre den forfra for former, når gennemførelse af informationstiltag, som vi får).så hvis vi begynder med det her, var topgroup = to. makegroup(), bottomgroup = to. makegroup(), direkte = to. makerectangle (100, 100, 100, 100) circ = to. makecircle (150, 150, 50); rect.fill = "røde" circ.fill = "blå" topgroup. tilføj (direkte); topgroup. der tilsættes (circ); 2. update(); vi har det samme som ovenfor:,, men, hvis man tilføjer, direkte til, bottomgroup i stedet.... bottomgroup. der tilsættes (direkte), nu, vores square er på toppen, trin 4 - inspirerende former, endelig, lad os tale om livsglæde.du ved allerede, at two.js gør de former, som du har skabt, når du ringer du, to. update(),.hvis du ringer, to. play() i stedet, det er som at kalde, update(), gentagne gange, efter anmodning animation ramme.hver gang det sker, two.js brande "update" begivenhed.dette er, hvordan vi kan producere informationskampagne: lyt til "update" tilfælde, og når det sker, har en funktion til at oprette de næste billede. vore eksempler har hidtil været ret enkelt, så lad os gå tingene lidt op: vi vil skabe et kredsløb om planeten med sine egne i kredsløb om månen.husk, vi starter med at skabe to tilfælde:, var el = dokument. getelementbyid ("primære"), 2 = 2 ((fullscreen: sande}). appendto (el), derefter skal vi oprette et par variabler., var earthangle = 0, moonangle = 0, afstand = 30. radius = 50, polstring = 100, kredsløb = 200, udligne = kredsløb + polstring, kredsløb = to. makegroup(); vi vil tilvækst, earthangle, og moonangle, til at få vores planet og månen rundt om deres kredsløb.den afstand, variabel, er, hvor langt vores måne vil komme fra vores jord.den radius, er raduis af vores jord, og den, polstring, er, hvor meget plads, vil vores planet er uden for sit område.sagde kredsløb kommer fra, kredsløb, variabel.det udligner, variabel, er, hvor langt vores planet vil blive opvejet af kanten af lærred.endelig er det, kredsløb, gruppe vil afholde to kredsløb kredse, som vil give os mulighed for at vise eller skjule dem efter forgodtbefindende.må ikke bekymre dig, hvis du er lidt forvirret, og du vil se, hvordan de arbejder sammen i en anden. vi begynder med jordens kredsløb.selvfølgelig, det er bare en simpel cirkel:, var earthorbit = to. makecircle (offset, udlignes, kredsløb); earthorbit. nofill(); earthorbit.linewidth = 4; earthorbit.stroke = "# ccc" kredsløb. der tilsættes (earthorbit); 2. update(); der er ikke noget nyt på alle her.her er, hvad du vil se, så er vi nødt til at skabe en planet, og på sit kredsløb.først skal vi have en måde at finde ud af, hvor i kredsløb om planeten skal placeres, og naturligvis er det nødvendigt at ændre for hver aktivering ramme.så, lad os skabe en funktion, der vil vende tilbage i midten, x og y, koordinater for det kredsløb, baseret på den nuværende vinkel for positionering rundt om den, og radius af kredsløb:, funktion getpositions (vinkel, kredsløb) (afkast (x: matematik. fordi (vinkel * math.pi /180) * kredsløb, y: matematik. synd (vinkel * math.pi /180) * kredsløb}}, ja, det er en lille smule trigonometri, men du skal ikke bekymre dig for meget: vi er at omdanne den vinkel, der er en vis) til en radian, ved hjælp af javascript absolut og cosinus metoder, og så multipling af, kredsløb.nu kan vi bruge denne funktion at tilføje jorden til billede:, var pos = getpositions (earthangle + +, kredsløb), jorden = to. makecircle (pos.x + forskydning, pos.y + forskydning, radius) earth.stroke = "# 123456" earth.linewidth = 4; earth.fill = "# 194878", vi begynder med den holdning, for det første, earthangle (værdi på 0, husker du?og så laver vi vores jord, der er baseret på disse positioner (plus udligne) og farve det.her er, hvad vi ender med, lad os give næring til denne planet.tilfælde bindende kodeks, faktisk kommer direkte fra rygrad, så det kan ser bekendt ud: to. bind ("update" funktion (framecount) {var pos = getpositions (earthangle + +, kredsløb); jorden. oversættelse. x = pos.x + modregning, jorden. oversættelse. y = pos.y + forskydning.}) og to. play();,, hvad det er, der sker her, er, at hver gang, ajourføre, begivenhed indtræffer, vi bruger, getpositions, funktion til beregning af den holdning til den næste vinkel på jorden.så har vi kun til midten af jorden til de nye stillinger, plus de udlignes.endelig opfordrer vi to. play(), begynder at ajourføre begivenheder.hvis du lader den side, nu skal du se jorden roterende omkring kredsløb. godt gået så langt, ikke?hvad med månen og dens bane vej; dette vil gå over, bind, erklæring., var moonorbit = to. makecircle (jorden. oversættelse. x, jorden. oversættelse. y, radius + afstand) moonorbit. nofill(); moonorbit.linewidth = 4; moonorbit.stroke = "# ccc" kredsløb. der tilsættes (moonorbit) var pos = getpositions (moonangle, radius + afstand), moon = to. makecircle (jorden. oversættelse. x + pos.x, jorden. oversættelse. y + pos.y, radius /4); moonangle + = 5, moon.fill = "# 474747", det ligner en kode for planeten: vi center månens bane cirkel i midten af jorden ved hjælp af sine, oversættelse, egenskaber og dens radius er radius af jorden og den afstand, månen er væk fra jorden.igen, vi kan tilføje, moonorbit til, kredsløb, gruppe. næste, skaber vi månen ved først at få den ønskede position og skabe en cirkel på det sted.for en radius, vi bruger en fjerdedel af radius, der anvendes til jorden.vi vil være imcrementing vinkel af månen med 5 hver gang, så det går hurtigere end jorden., jeg slukker animation (bemærkning ud, two.bind, erklæring), får vi det her:,, sidste skridt: få månen inspirerende.i det samme, two.bind, erklæring, tilføje disse linjer:, var moonpos = getpositions (moonangle, radius + afstand) måne. oversættelse. x = jorden. oversættelse. x + moonpos. x, moon. oversættelse. y = jorden. oversættelse. y + moonpos. y. moonangle + = 5, moonorbit. oversættelse. x = jorden. oversættelse. x; moonorbit. oversættelse. y = jorden. oversættelse. y. ligesom før, vi får den nye holdning til månen, og stilling i forhold til jorden.så har vi også flytte månens bane ring, så det bliver koncentreret om jorden. med alt dette på plads, vores lille eksempel er afsluttet: her er stadig skudt af aktionen:,, som jeg sagde, kan vi også skjule kredsløb.eftersom de er i, kredsløb, gruppe, vi kan bruge, synlige, tilhører den gruppe:, orbits.visible = falske, og nu:,, konklusioner, men det er en pakke på denne forelæsning.tror du, at du vil bruge two.js i nogen af dine egne projekter?eller måske har du et bedre alternativ?lad os høre om det i bemærkningerne.,


















Previous:
Next Page: