en introduktion til kvarts 2d

, en introduktion til kvarts 2d,,,,, 20,,,,,,,, 8,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,,, hvad der er kvarts 2d?,, kvarts 2d er apples 2d tegning motor, en vigtig del af de centrale grafik rammer.du kan ofte se kvarts 2d benævnt centrale grafik eller blot cg.,, kvarts 2d bruger "maler model".i malerens model, hver på hinanden følgende tegning operation anvender et lag af "male" produktion "eller", som ofte kaldes en side.tænk på det som en kunstner på et maleri.hvis kunstneren var at male hele lærredet blå, og så maler nogle skyer på lærredet, da skyerne dækker blå under dem.når noget er "malede" på gulvet, kan den ikke ændres, men ved at tilføje mere maling på toppen af det, alle tegningen i kvarts 2d sker gennem en grafik forbindelse af typen, cgcontextref,.med henvisning til en grafik sammenhæng, kan du bruge den kvarts 2d funktioner at henlede den sammenhæng, der udfører operationer, f.eks. oversættelse af den forbindelse og ændre grafisk stat parametre, såsom linje bredde og fylde farve.kvarts 2d er en c-based api - grænseflade, som de vil benytte sig af c - funktioner, som i forbindelse med parameter.,,, at henlede den skærm, 105, du skal anvendes en  , uiview og tilsidesætte sin, drawrect (_:), metode.det er derinde, drawrect (_:), en metode, som de vil gøre nogen skik tegning.du skal aldrig kalde, drawrect (_:), metode direkte i din kode.hvis du har brug for at ajourføre den skærm med en ny tegning ordrer, du skal ringe til de metoder,  , setneedsdisplay(), eller  , setneedsdisplayinrect (_:),.,,, når de bruger kvarts 2d på six, koordinere, (0,0), er øverst til venstre på skærmen.x -   koordinere stigninger, som du lige komme og y   koordinere stigninger som du bevæger dig ned., i hele denne forelæsning, du kan ønske at høre kvarts 2d programming guide.formålet med denne lektion er at komme i gang ved hjælp af kvarts 2d. der er meget, der vil ikke være omfattet, og for at forstå, at kvarts 2d har at tilbyde, jeg foreslår, at du læser programvejledning.,,, med denne korte indledning af vejen, så lad os komme i gang ved hjælp af kvarts 2d.,, 1.udarbejdelsen af en, uiview, tegning,, hvis du har et projekt, åben og er klar til at begynde at arbejde med kvarts 2d, de trin, du skal tage, er ret enkel.du bliver nødt til at skabe en klasse, der er en underklasse af, uiview, tilføje en udsigt, fra objektet bibliotek til dit projekt i grænseflade, bygmester, og denne opfattelse er klasse til, uiview, anvendes  , du har skabt.lad os gå gennem dette trin for trin, trin 1: subclassing, uiview, gå til, fil > nye >, fil.under den programmerbare, afsnit, udvælge, kilde, og så vælger, kakao røre klasse, som model.,,,,,, på skærmen, at ændringer, giv din klasse, et navn, sørg for, at det er en, uiview, anvendes, og der   sprog til  , swift.tryk  , næste, og at vælge, hvor de vil redde din klasse.,,,,,, hvis de på kilden til din nye klasse, vil du se, drawrect (_:), metode.det er i øjeblikket bemærkninger, men vi vil ændre det i et par minutter.,,, import uikit klasse drawlineview: uiview {* //kun tilsidesætte drawrect: hvis du udføre skik tegning.//en tom gennemførelse påvirker resultater i en tegnefilm.- arbejdet drawrect (direkte: cgrect) (//tegning kode} * /), trin 2: at tilføje en betragtning og fastsættelse af klasse, åbne projektets tegning og åbne, objekt bibliotek  , til højre.i søgningen på bunden, træde   ", uiview," at filtrere objekter, vi er ikke interesseret i.,,,,, slæbe, uiview, f.eks. på baggrund   controller.med henblik på   udvalgte, åbne, identitet, inspektør,   på rette   og ændre, klasse, hvad du hedder underklasse.,,,,, nogen kode, du lægger i den, drawrect (_:), metode vil blive gjort, når den, uiview, underklasse er instantierede.den opfattelse, at automatisk konfigurerer miljø, så kan du begynde at øjeblikkeligt.med henblik på konfigurerer, cgcontextref, nævnt i begyndelsen af dette budskab, og det er inde i, drawrect (_:), metode, som du vil få en henvisning til det.,,, 2.første projekt, til at få os i gang hurtigt,   jeg har givet et første projekt, der har alle de synspunkter, som allerede er armeret og klar til brug.det, uiview, underklasser er opkaldt efter tegningen kommandoen, vi vil undersøge.for eksempel, når vi lærer om at trække linjerne den tilsvarende klasse vil blive udnævnt, drawlinesview,.,, du kan downloade det første projekt fra github.vi vil starte kodning i næste skridt.,,,, 3.at opnå en henvisning til den grafiske sammenhæng, før du kan gøre noget ved, du har brug for at få en henvisning til den grafiske sammenhæng.dette sker således.,,, lad forbindelse = uigraphicsgetcurrentcontext(), det vender tilbage til en uigennemsigtig form, cgcontextref, og de vil videregive denne sammenhæng i c - funktioner til den skik tegning.   nu, at vi ved, hvordan man får en henvisning til den grafiske situation, kan vi begynde at tegne kommandoer.,, 4.at trække en streg,, hvis du har downloadet det første projekt, åben  , drawlineview.swift, og tilføje følgende til  , drawrect (_:), en metode, drawrect - funktion (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) cgcontextmovetopoint (sammenhæng, 0, 0) cgcontextaddlinetopoint (sammenhæng, 200, 200) cgcontextstrokepath (baggrund)}, vi først får en henvisning til at drøfte forbindelse som tidligere.fordi det er noget, vi vil gøre, for eksempel, jeg vil ikke nævne dette i den kommende eksempler.,,, cgcontextsetstrokecolorwithcolor (_: _:),   funktion fastsættes den farve, som den linje vil blive trukket eller døde.de parametre, vi vedtager i den grafiske kontekst og de nye slagtilfælde farve.,, hvis du tror på den grafiske kontekst som gulvet i en maler, så  , cgcontextmovetopoint (_: _: _:),   funktion flytter pensel til et bestemt punkt på gulvet, at påbegynde eller fortsætte udarbejdelsen.forestil dig at trække på et stykke papir, løft din hånd, og flytter til en anden del af grønbogen, og om fortsat at gøre.det væsentlige er, hvad denne metode udretter.vi går i den grafiske kontekst og en x - og y - koordinere til at starte med udgangspunkt i.,,,, cgcontextaddlinetopoint (_: _: _:), funktion tager parametre grafik sammenhæng, x - værdi, for enden af køen segment, og y - værdi for enden af køen segment.efter tilsætning af et linjesegment, det nuværende punkt vil blive fastsat til endepunktet af linjesegment.vi begyndte at tegne drift (0,0), efter at denne tegning operation markøren eller pensel på (200200). endelig at gøre den faktiske tegning du skal kalde det, cgcontextstrokepath (_:), funktion, som går i den grafiske sammenhæng. denne funktion blot trækker en linje ud ad den vej, vi er angivet.,, bygge og drive stikprøven projekt at se effekten. 5.udarbejdelsen af et rektangel, åbne, drawrectangleview.swift, og tilføje følgende til  , drawrect (_:), metode.   du bør være bekendt med de første to linjer nu.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) - rektangel = cgrectmake (50,50, ramme. størrelse. width-100, ramme. størrelse. height-100) cgcontextaddrect (sammenhæng rektangel) cgcontextstrokepath (baggrund),,, cgrectmake (_: _: _: _:), funktion er en del af cggeometry, og der er en let måde at skabe en, cgrect struktur.som navnet antyder,  , cgrect,   er en struktur, der indeholder placering og dimensioner af et rektangel.en, cgrect, er to områder,  , oprindelse og størrelse, der er en, cgpoint, og en, cgsize,   henholdsvis.hvis du ikke er bekendt med disse datatyper, så har en hurtig læst i cggeometry reference.,, skaber vi en konstant,  , rektangel, ved, cgrectmake (_: _: _: _:), funktion og kalder den, cgcontextaddrect (_: _:),   funktion, som tager parametre, den grafiske situation og en, cgrect,.endelig anmoder vi, cgcontextstrokepath (baggrund), at henlede rektangel.,,, bygge og drive projektet at se rektangel henledt på skærmen.,,, 6.tegner en cirkel, åbne, drawcircleview.swift og ajourføre, drawrect (_:), en metode som følger:,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) - rektangel = cgrectmake (50,50, ramme. størrelse. width-100 størrelse, ramme.. height-100) cgcontextaddellipseinrect (sammenhæng rektangel) cgcontextstrokepath (baggrund), og de undrer dem måske over, hvorfor vi kræver, cgrectmake (_: _: _: _:),  , når vi tegner en cirkel?rektanglets er området cirklen skal passe til.i kode ovenfor, skaber vi en cirkel, ved hjælp af en square.hvis du vil gøre en oval eller ellipse, så er du nødt til at gøre det rektangel, mere en rektangulær form, vi så ringe, cgcontextaddellipseinrect (_: _:),   funktion, som tager som parametre grafik kontekst og rektangel, som drager de ellipse.cirklen er udarbejdet af ringe, cgcontextstrokepath (_:), går i den grafiske sammenhæng.,,, 7.udarbejdelsen af en bue, åbne, drawarcview.swift, og tilføje følgende kode i  , drawrect (_:),   metode.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) cgcontextaddarc (sammenhæng, 100100,50,3.14,0,1) cgcontextstrokepath (baggrund),,,  , cgcontextaddarc (_: _: _: _: _: _: _:), funktion kræver en hel del parametre:,, grafik sammenhæng, x - værdi for midten af buen, y - værdi for midten af buen, den er   radius, vinkel med udgangspunkt i den bue målt i radianer fra positive x - aksen, den vinkel, at afslutningen på den bue målt i radianer fra positive x - aksen, en værdi af 1, for at lavee uret er eller en værdi på 0, til at skabe en mod uret arc, 8.udarbejdelsen af en vej, til at henlede mere komplekse former, du skaber en sti og slagtilfælde.tag et kig på  , drawrect (_:), en metode, drawpathview. swift.,,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) cgcontextmovetopoint (sammenhæng, 25, 150) cgcontextaddlinetopoint (sammenhæng, 175, cgcontextaddlinetopoint (150) sammenhæng, 100, 50) cgcontextaddlinetopoint (sammenhæng, 25, 150) cgcontextstrokepath (baggrund), i, drawrect (_:),   metode, vi kalder, cgcontextaddlinetopoint (_: _: _:), flere gange for at skabe en trekant.bemærk, at trekanten ikke er fyldt, kun et.i løbet af de næste skridt, vil vi se, hvordan til at udfylde den trekant, med farve. 9.besættelse af en sti, åben  , fillpathview. hurtig,   og ajourføre, drawrect (_:), en metode, som vist nedenfor. drawrect tilsidesætte funktion (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextmovetopoint (sammenhæng, 25, 150) cgcontextaddlinetopoint (sammenhæng, 175, 150) cgcontextaddlinetopoint (sammenhæng, 100 50) cgcontextaddlinetopoint (sammenhæng, 25, 150) cgcontextsetfillcolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) cgcontextfillpath (baggrund), i det foregående trin, vi brugte en sti, men de kan også udfylde en vej med en særlig farve.i ovenstående drawrect (_:), en metode, vi begynder ved at skabe en vej til samme trekant, som i det foregående eksempel.denne gang har vi fastsat en fylde farve ved hjælp af  , cgcontextsetfillcolorwithcolor (_: _:), funktion og  , cgcontextfillpath (_:), snarere end cgcontextstrokepath (_:),.,, 10.at udfylde en ellipse, bortset fra at veje, du kan også udfylde ellipses og rektangulær form.i dette eksempel vil vi udfylde en ellipse.påfyldning af et rektangel, er imidlertid meget ens.dokumentation vil fortælle dig, hvordan det gøres.ajourføre, drawrect (_:), en metode, fillellipseview. hurtig,   som vist nedenfor.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetlinewidth (sammenhæng, 8) cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) - rektangel = cgrectmake (50,50, ramme. width-100 størrelse. en fælde. størrelse. height-100) cgcontextaddellipseinrect (sammenhæng rektangel) cgcontextstrokepath (baggrund) cgcontextsetfillcolorwithcolor (sammenhæng, uicolor. greencolor(). cgcolor) cgcontextfillellipseinrect (sammenhæng rektangel), er de fleste af denne kodeks bør være bekendt med nu.vi bruger en ny funktion,  , cgcontextsetlinewidth (_: _:), at fastsætte den linje, bredde, og vi opfordrer  , cgcontextfillellipseinrect (_: _:),   til at udfylde den ellipse.denne funktion er som parametre grafik kontekst og rektangel, som at fylde ellipse.,, 11.tilsætning af linjer,,, cgcontextaddlines (_: _: _:),   funktion er en nyttig funktion, når man har en række indbyrdes forbundne lige linje segmenter, du ønsker at gøre.her har vi genskabe trekanten fra tidligere i eksempler med, cgcontextaddlines (_: _: _:), fungerer.der tilføjes følgende kode, addlinesview. hurtig,.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) lad linjer = [cgpointmake (25150), cgpointmake (175150), cgpointmake (100,50), cgpointmake (25150)] cgcontextaddlines (sammenhæng linjer, 4) cgcontextstrokepath (baggrund),,, cgcontextaddlines (_: _: _:),   funktion tager parametre grafik sammenhæng en række værdier, der angiver begyndelsen og slutningen af dele af strækningen at trække punkter, som cgpoint,   strukturer, og antallet af elementer i nettet.bemærk, at det første punkt i systemet angiver udgangspunktet., 12.udarbejdelsen af en gradient, med   kvarts 2d, er det let at   henlede stigninger.både lineær og radialdæk gradienter støttes.i dette eksempel vil vi trække en lineær gradient.denne dokumentation vil hjælpe dig, hvis du er interesseret i at radiale stigninger.der tilføjes følgende til drawgradientview. hurtig,.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() lad colorspace = cgcolorspacecreatedevicergb() lad farver = [uicolor. redcolor(). cgcolor, uicolor. bluecolor(). cgcolor] lad steder: [cgfloat] = [0, 0, 5] lad gradient = cggradientcreatewithcolors (colorspace, farver, lokaliteter) lad startpoint = cgpointmake (0,0) lad endpoint = cgpointmake (200200) cgcontextdrawlineargradient (sammenhæng, hældning, startpoint, endepunkt, 0),,, cgcontextdrawlineargradient (_: _: _: _: _:),   funktion tager parametre:,, grafik, sammenhæng, en, cggradient,   struktur, en begyndelse, et slutpunkt, mulighed for at angive, om at fylde flag er extended efter opstart eller afslutning, en, cggradient,   struktur definerer en glidende overgang mellem farver i et område.det er en farve ved to eller flere farver, og et sted for hver farve.konstanterne  , colorspace, farver og steder, i ovenstående eksempel udgør de dele af den, cggradient,.,, at drage den stigning, vi kalder, cgcontextdrawlineargradient (_: _: _: _: _:),   funktion, som går i den grafiske sammenhæng,, cggradient, start - og sluttidspunkt værdier, og 0, for at angive, at fylde bør udvides ud over de begyndende placering.,, 13.   tegner en skygge, en skygge, er et billede, der er nedenunder, og udligne fra en grafiske objekt, således at skygge efterligner virkningen af en lyskilde, stemmer om grafiske objekt.- kvarts 2d programvejledning,,   er der to funktioner, kan du bruge til at trække skygger,  , cgcontextsetshadow (_: _: _:), og cgcontextsetshadowwithcolor (_: _: _: _:).ved anvendelse af  , cgcontextsetshadow (_: _: _:), alle genstande, der er fulgt ved hjælp af en sort farve med 1 /3 - alfa.det, cgcontextsetshadowwithcolor (_: _: _: _:,   funktion giver dig mulighed for at fastsætte en farve i skyggen. lad os se, hvordan det fungerer i praksis.der tilføjes følgende til setshadowwithcolor. hurtig,.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() cgcontextsavegstate (baggrund) lad shadowoffset = cgsizemake (- 15 - 20) cgcontextsetshadowwithcolor (sammenhæng, shadowoffset, 3, uicolor. greencolor(). cgcolor) cgcontextsetstrokecolorwithcolor (sammenhæng, uicolor. redcolor(). cgcolor) - rektangel = cgrectmake (50,50, ramme. størrelse. width-100, ramme. størrelse. height-100) cgcontextaddrect (sammenhæng rektangel) cgcontextstrokepath (baggrund) cgcontextrestoregstate (baggrund),, at der skygger, du skal redde den grafiske kontekst, foretage eventuelle nødvendige ændringer, og genoprette den grafiske stat.vi kalder  , cgcontextsavegstate (_:),   for at redde den aktuelle situation i den grafiske sammenhæng, angive en udligning i skygge,  , shadowoffset, og ring til  , cgcontextsetshadowwithcolor (_: _: _: _:), fungerer.denne funktion er som parametre:,, grafik sammenhæng, udlignes i skyggen, sløret størrelse, farve i skyggen, og resten skal være bekendt.endelig har vi genoprette den grafiske sammenhæng ved at kræve, cgcontextrestoregstate (_:), går i den grafiske sammenhæng.,, 14.udarbejdelsen af et glad ansigt, troede jeg, det ville være sjovt at afslutte denne forelæsning ved at trække et enkelt glade ansigt, med hvad vi har lært i løbet af denne forelæsning.der tilføjes følgende til drawhappyfaceview. hurtig,.,, før arbejdet drawrect (direkte: cgrect) (lad forbindelse = uigraphicsgetcurrentcontext() lad ansigt = cgrectmake (50,50, ramme. størrelse. width-100, ramme. størrelse. height-100) cgcontextaddellipseinrect (sammenhæng ansigt) cgcontextsetfillcolorwithcolor (sammenhæng, uicolor. yellowcolor(). cgcolor) cgcontextfillellipseinrect (sammenhæng ansigt) lad lefteye = cgrectmake (75,75,10,10) cgcontextsetfillcolorwithcolor (sammenhæng, uicolor. blackcolor(). cgcolor) cgcontextfillellipseinrect (sammenhæng, lefteye) lad righteye = cgrectmake (115,75,10,10) cgcontextfillellipseinrect (sammenhæng, righteye) cgcontextsetlinewidth (sammenhæng, 0) cgcontextaddarc (forbindelse cgconte 100100,30,3.14,0,1)xtstrokepath (led), og gennemførelsen af det, drawrect (_:),   metode giver mening nu, og du skal have et glad ansigt henledt på skærmen.,, konklusion, det bringer denne lektion til ophør.du skal have en grundlæggende forståelse af, hvordan til at udføre skik at ved hjælp af kvarts 2d tegning motor.jeg håber, du har lært noget nyttigt ved at læse denne forelæsning.

New Cocoa Touch Class
Set File Options
Show Object Library
Set Class on View



Previous:
Next Page: