Sisukord:
- Samm: muutuv
- 2. samm: muutuja loomine
- 3. samm: muutuja nimetamise reguleerimine
- 4. samm: muutuja tüüp
- Samm: operaator
- 6. toiming: operatsiooni tulemus:
- 7. samm: tööreguleerimine
- Samm 8: Funktsiooni seadistamine ja joonistusfunktsioon
- 9. samm: ring horisontaalses liikumises
- 10. samm: liikumise suund
- 11. samm: tähelepanuta jäetud taust
- 12. samm: loksutusring
- 13. samm: rändering
- 14. samm: hiirega liigutatud ring
- Samm: lõpetage
- 16. samm: suhtelised näidud:
Video: Huvitavad programmeerimisjuhised disainerile-pildistage (esimene osa): 16 sammu
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Jookse! Jookse! Jookse!
Programmeerimine pole nii raske. Peamine on leida oma rütm ja teha seda ükshaaval.
Loodan, et olete enne selle peatüki lugemist põhifunktsioonide joonistamise meetodiga juba tuttav, või tunnete end uimaseks ja segadusse kahest suurest peafunktsioonist: seadistamine ja joonistamine.
Kuna tahame teha liikuvat graafikat, peame teadma, kuidas animatsiooni toodetakse.
Ülaltoodud pilt tundub üsna atraktiivne ja näitab visuaalselt animatsiooni rakendamise põhimõtet.
Animatsioon on maagia. See on visuaalse petmise võlu. Kuid see teave plahvatas, videotulvade vanus, oleme sellega juba harjunud. Vähesed inimesed on üllatunud, et animatsiooni nägemine on hämmastav.
Sama põhimõtet saab rakendada ka programmiga animatsiooni joonistamisel. Peame kaaluma, kuidas igasse kaadrisse erinevat graafikat joonistada, ja programm keerab automaatselt lehti, kui täiendame oma peas valmis animatsiooni. Järgmises peatükis räägime sellest, kuidas teostada põhilisi graafilisi liikumisi. Enne seda peame teadma mõningaid põhiteadmisi muutujate kohta.
Samm: muutuv
Muutuja on andmete konteiner. Seda saab programmi raames korduvalt kasutada.
Näiteks:
[cceN_cpp theme = "dawn"] suurus (500, 500); ellips (100, 250, 50, 50); ellips (200, 250, 50, 50); ellips (300, 250, 50, 50); ellips (400, 250, 50, 50);
[/cceN_cpp]
See koodiosa ei ole kasutanud muutujaid. See tõmbab ekraanile neli ringi. Leiame, et neil on sama laius ja kõrgus. Nüüd, kui see on sama, võime korduva andmesisestuse minimeerimiseks määratleda märgi selle esitamiseks. See märk on muutuv.
Siin on kood pärast muutuja lisamist:
[cceN_cpp theme = "dawn"] suurus (500, 500); int a = 50; ellips (100, 250, a, a); ellips (200, 250, a, a); ellips (300, 250, a, a); ellips (400, 250, a, a);
[/cceN_cpp]
Saame täiesti sama tulemuse!
Kuna oleme määranud muutuja a, saame parameetreid mugavalt muuta. Kui muudame a = 50 väärtuseks a = 100, muutuvad kõigi ringide laius ja kõrgus 100 ühtlaselt. Nii et me ei pea parameetreid ükshaaval muutma. Muutuja on tõesti hea leiutis.
2. samm: muutuja loomine
Enne muutuja kasutamist peame tegema avalduse ja määrama selle andmetüübi.
int i;
i = 50;
Koodi esimene lause on teinud avalduse muutuja i jaoks. int on sümbol, mida kasutatakse peamiselt muutuja deklareerimiseks. Deklareerides säästab see ruumi arvuti mälust, mis on samaväärne "kasti" genereerimisega, mida kasutatakse spetsiaalselt täisarvuliste andmete taastamiseks. Teine lause tähistab ülesande 50 täitmist muutuja i abil. Pärast selle lause rakendamist salvestatakse andmed muutuja i stabiilselt. Või võite olla laiskam ühendada ülaltoodud kaks lauset üheks ja lõpetada ülesanne avalduse tegemisel.
int i = 50;
Muutuja nimetamine on suhteliselt vaba. Kuid mõnikord peame millelegi tähelepanu pöörama.
3. samm: muutuja nimetamise reguleerimine
• See peab olema tähestiku ja allajoonitud kombinatsioon. See võib olla sümbol või sõna.
• Kirja tõstutundlik. Nimi ja nimi võivad tähistada erinevaid muutujaid.
• Proovige seda võimalikult lihtsalt nimetada, et saaksite ühest pilgust aru saada. Esialgne märk peab olema numbri või erimärgi asemel tähestik.
• Ei mingeid märksõnu nagu int, float
Järgnev on mõned valed väited.
int $ a;
int 89b;
Siin on õiged väited:
int r;
int super_24;
int openTheDoor;
4. samm: muutuja tüüp
Välja arvatud täisarvuliste andmete deklareerimine, saame deklareerida kümnendandmeid (nimetatakse ka ujukomaandmeteks) märksõnaga float.
ujuk b = 0,5
Peame meeles pidama, millist andmetüüpi me oma avalduse jaoks kasutasime. Kui oleme kasutanud võtmesõna int, ei saa viimane ülesanne kirjutada i = 0,5 või midagi sellist, vastasel juhul muutub programm veaks. Aga kui me kirjutame vastandlikult, on kõik korras. Näiteks ujuk i = 5 on õige grammatika, kuid programm tuvastab selle kümnendarvuna.
Mõned muutujad on süsteemi poolt juba määratletud. Me ei pea neid ise deklareerima. Nii nagu eelnevalt viidatud "laius, kõrgus", omandab see automaatselt arvutiekraani laiuse ja kõrguse. Nii kõrge sagedusega kasutamisel, et disainer määratleb selle otseselt vaikemuutujaks, et muuta see meie jaoks mugavamaks.
Samm: operaator
Töötlemise operaatorid on järgmised.
+ pluss
- miinus
* korrutada
jaga
% Ülejäänud moodul
Peate olema tuttav kõigi nende operaatoritega, välja arvatud %. See tundub üsna kummaline, sest selle tulemus jääb alles. 9%3 on 0. Kuigi 9%5 on 4.
Operaatoreid saab kasutada ülesannete ja muutujate hulgas.
[cceN_cpp theme = "koidik"] int a = 1; // deklareerida täisarvuline muutuja a, määramine on 1. int b = 2; // Deklareeri täisarvuline muutuja b, määramine on 2. int c; // Täisarvulise muutuja deklareerimine c. c = a + b; // Pluss kaks ülesannet ja määrake selle tulemus c -le. trükk (c); // Väljundmuutuja c.
[/cceN_cpp]
6. toiming: operatsiooni tulemus:
Väljundtulemust ei kuvata aknal, vaid allosas asuvas konsoolis.
Neljanda rea kirjutamismeetod tundub üsna kummaline. Kuid see on tavaline vorming, mida sageli kasutatakse arvuti määramisel. Võrdse sümboli vasak pool peaks olema lõplikult määratud muutuja, parem pool aga tööprotsess.
Prindifunktsioon viiendal real võib konsoolis välja printida muutujad, mida kasutatakse sageli andmete väljastamise seisundi testimiseks.
7. samm: tööreguleerimine
Tülikas punkt töötlemisel on see, et peame selgitama muutuja tüübi. Peame pöörama erilist tähelepanu ujukomaarvu ja täisarvu tüübile.
trükk (6 /5); // tulemus 1
Toiming täisarvude vahel saab uue täisarvu. 6 jagatud 5 -ga on 1,2. Kuid programmi väljundi tulemus on 1. See on vastuolus meie intuitsiooniga. Programm ei tegele ümmargusega, vaid kustutab kümnendkoha taga oleva numbri.
trükk (6,0 / 5,0); // tulemus 1.2
Ujukoma vahel toimimine annab uue ujukoma numbri. Kui tegelik tulemus on 1,2, on programmi väljundtulemus sama.
trükk (6 / 5.0); // tulemus 1.2
trükk (6,0 / 5); // tulemus 1.2
Lõpuks on see segu täisarvust ja ujukomaarvust. Lõpptulemus on 1,2.
• Tegelikult peate meeles pidama, et selle regulatsiooni eesmärk on mitte kaotada andmete täpsust. Nii et kui üks element on ujukomaarv, on tulemuseks ka ujukoma number.
Samm 8: Funktsiooni seadistamine ja joonistusfunktsioon
Varem oleme rääkinud hunnikust maandamisteadmisi. Nüüd lõpuks mängime midagi huvitavat. Funktsioonide seadistamine ja joonistamine on samaväärsed töötlemise põhifunktsioonidega. Need kaks funktsiooni on väga erilised. See saab kontrollida programmi toimimist. Võrdlemisi keeruline programm sisaldab neid kahte funktsiooni, kuna need on programmi põhiraam. Vorming:
tühine seadistus () {
}
tühine viik () {
}
Erikasutus muudab nende käivitusvormingu erinevaks teistest funktsioonidest. Peame funktsiooni nime ette lisama "tühja", mis tähendab "tagastatud väärtust". Funktsiooni nime taha peame lisama sulud ja sulgud.
[cceN_cpp theme = "dawn"] tühine seadistus () {print (1); } tühine viik () {print (2); } [/cceN_cpp]
Vaatame näidet:
Kui vajutate juhtnuppu, väljastab konsool kõigepealt "1" ja seejärel pidevalt "2", kuni olete stopp -nupu alla vajutanud või akna sulgenud.
Seadistusfunktsiooni sulgudes olev kood rakendatakse ainult üks kord. Kuigi funktsiooni joonistamise kood töötab pidevalt ringluses (vaikimisi rakendamine 60 korda sekundis).
Selle iseloomu tõttu kasutatakse seadistust tavaliselt keskkonna omaduste, näiteks ekraani laiuse ja kõrguse, taustavärvi ning igasuguste muutujate määramiseks, lähtestamiseks. Kuigi me paigutame joonistusfunktsioonid sageli funktsioonide joonistusse, et luua pidevalt muutuvat graafikat.
9. samm: ring horisontaalses liikumises
Funktsioonide joonistamisega saame alustada oma animatsioonide loomist. Animatsiooniefekti töötlemise meetod on üsna ebamugav. Sellel pole ühtegi käsku. Näiteks määrake kõverjooneliselt teatud kuju.
Peame need üksikasjad ise määratlema. Peate programmile ütlema, millist graafikat iga kaader kindlasti vajab.
Kirjutage sinna järgmine kood (hakkame seda nüüd käsitsi tegema):
[cceN_cpp theme = "koidik"] int x; int y; void setup () {suurus (300, 300); x = 0; y = kõrgus/2; } tühine viik () {taust (234, 113, 107); noStroke (); ellips (x, y, 50, 50); x = x+1; }
[/cceN_cpp]
See koodiosa kuvab liikumisringi. Koordinaatide asukoha salvestamiseks kasutatakse endist deklareeritud muutujat x, y. Selle ülesanded toimivad funktsioonide seadistamisel. Võtme kood on funktsioonide joonistamisel järgmine:
x = x + 1
Ärge vaadake seda matemaatilise võrrandina, muidu on see väga kummaline. Siin on "=" ülesande sümbol. See tähistab parempoolsete numbrite paigutamist vasakusse muutujale. Oletame, et x on 50, kui kood käivitub, on "=" parem pool võrdne 50+1, st 51. Lõpptulemus määratakse muutujale x. Seega saab x väärtuseks 51.
Järgige programmi protseduuri, iga kord, kui funktsioonide joonistamine töötab üks kord, suureneb x väärtus 1. Nii et iga kord, kui joonistame, liigub ring pikslite suunda horisontaalselt paremale, võrreldes eelmise kaadriga. Seetõttu muutub graafika liikuvaks.
• Koodi parema loetavuse tagamiseks peame enne iga sulgudes olevat koodirida varuma teatud ruumi. Ja see peab olema võimalikult joondatud. Vajutage klahvi TAB või mitu tühja ruumi, see võib tagasi tõmmata.
• Programmis tühja ruumi ja reavahetuse sümbol ei mõjuta programmi. Nii et on ok, kui sisestame ühe rohkem või vähem.
Siin on veel üks lihtsam viis selle väljendamiseks. Muutuva ringi automaatseks suurendamiseks 1 peame kirjutama järgmise vormingu.
ring = ring +1
Päris ebamugav! Kui muutuja nimi on pikem, peame sisestama rohkem sõnu. Nii et meie laisad eelkäijad mõtlevad välja sellise idee.
ring ++
Kas pole väga lihtne? See tähendab automaatselt 1 suurendamist. Sarnaselt sellele on olemas - -, mis tähendab automaatselt 1 vähenemist.
Aga kui loodame, et automaatse suurendamise kogus on muu arv nagu 2, peame proovima teist väljendit.
ring += 2
See võrdub
ring = ring + 2
Samamoodi on - =, /=, *=.
10. samm: liikumise suund
Millises suunas graafika liigub, sõltub sellest, kuidas oma koordinaate muudate. Kui see muudetakse väärtuseks y = y + 1, liigub ring allapoole. Kui nii x kui ka y suurenevad 1 võrra, liigub ring paremasse allapoole. Kui kirjutame selle miinusmärgiks, liigub see vastupidises suunas.
[cceN_cpp theme = "koidik"] int x, y; // Saab deklareerida mitu muutujat korraga, eraldamiseks kasutage koma. void setup () {suurus (300, 300); x = 0; y = 0; } tühine viik () {taust (234, 113, 107); noStroke (); ellips (x, y, 50, 50); x ++; y ++; }
[/cceN_cpp]
Liikumise kiirus
Kas mäletate funktsiooni loosimisel vaikimisi 60 kaadrit sekundis? Selle kiiruse järgi liigub ülaltoodud ring 60 pikslit sekundis paremale.
Kui tahame graafilist liikumiskiirust muuta, on kaks meetodit: üks on suurendada x väärtust iga kord pärast selle muutmist.
x = x + 10
See on parandanud kiirust 10 korda võrreldes originaaliga!
Teine meetod on lõuendi värskendamise sageduse muutmine. kaadrisagedus()
See funktsioon võib muuta lõuendi edastussagedust. Kirjutage funktsiooni häälestusse frameRate (10), see muudab algse 60 kaadrit sekundis 10 kaadriks sekundis. Kiirust aeglustatakse 6 korda varem.
11. samm: tähelepanuta jäetud taust
Kõik eelmised näited kirjutavad funktsiooni joonistusse tausta. Kas olete kunagi mõelnud selle funktsiooni seadistusse kirjutada? Kas sellel on mingeid erinevusi? Nüüd värskendame horisontaalse liikumise näidet.
[cceN_cpp theme = "koidik"] int x, y; void setup () {suurus (300, 300); taust (234, 113, 107); x = 0; y = kõrgus/2; } void draw () {noStroke (); ellips (x, y, 50, 50); x += 1; } [/cceN_cpp]
Mis on juhtunud? Võib -olla ei suuda ta probleemi põhjuse õigesti mõista. Kustutage funktsioon noStroke, lisage uuesti löök ja vaadake ringi liikumisteed.
Oh, see on tingitud sellest, et varem loodud suhtlusringi pole kustutatud! Kuna funktsioonide seadistamine toimib ainult üks kord, siis kui me kirjutame selle kohale tausta, täidab see tausta ainult ühe korra ja hiljem ei avalda see enam mingit mõju. Funktsiooni taust on nagu värvi ämbri tööriist. Pärast kasutamist katab see kogu lõuendi sisu, mitte ainult taustavärvi. Kirjutame selle enne funktsiooni joonistamist, nii et endine raam kaetakse iga kord, kui loome uue mustri. Seetõttu võib ring kulgeda nii, nagu ootasime. Välja arvatud iga funktsiooni kasutusviiside meeldejätmine, peame mõtlema koodi asukohale. Palju aega, üles- või allapoole jääv rida koodile ja selle kirjutamine breketisse või sellest välja, tekitab see üsna erinevaid efekte. Koodi suund on kahemõõtmeline. Kui ilmneb viga, peame kalibreerima selles kahes mõõtmes.
• See kordumatu joonistusmeetod võib õige kasutamise korral tekitada väga erilise efekti. Võite kopeerida järgmise koodi ja proovida.
[cceN_cpp theme = "dawn"] tühine seadistus () {suurus (400, 400); } void draw () {ellips (laius/2-hiirX, kõrgus/2-hiirX, hiirY, hiirY); ellips (laius/2-hiirX, kõrgus/2+hiirX, hiirY, hiirY); ellips (laius/2+mouseX, kõrgus/2-mouseX, mouseY, mouseY); ellips (laius/2+mouseX, kõrgus/2+mouseX, mouseY, mouseY); } [/cceN_cpp]
Siin oleme kasutanud maagilist muutujat mouseX ja mouseY. Hiljem räägime sellest üksikasjalikult.
12. samm: loksutusring
Mis siis, kui ma tahan muuta ringide liikumissuuna ebaregulaarseks? Funktsiooni nutikalt juhuslikult saate ka selle efekti realiseerida. Juhuslik on sageli kasutatav funktsioon. Seda saab kasutada juhusliku funktsiooni genereerimiseks. See on nagu jäljetu vaim. Kui olete muutujatega seotud, ei kujuta te ette, mis saab edasi.
Kutsumise vorming:
juhuslik (kõrge)
Kõrge tähistab juhuslikku ülempiiri ja vaikimisi alumine piir on 0. Näiteks juhuslik (10). See annab juhuslikult arvu 0 kuni 10 (0 on kaasas, kuid 10 ei kuulu komplekti).
juhuslik (madal, kõrge)
Kui määrame kaks parameetrit, naaseb see nende vahel juhusliku väärtuse juurde. Näiteks juhuslik (5, 10). See annab juhuslikult arvu 5 kuni 10 (5 on kaasas, kuid 10 ei kuulu komplekti).
Näide:
[cceN_cpp theme = "koidik"] float x;
x = juhuslik (50, 100);
print (x); [/cceN_cpp]
Iga kord, kui programmi käivitame, väljastab konsool erinevaid väärtusi.
• Märkus. Funktsiooni random abil loodud väärtused kuuluvad ujukoma tüüpi (kümnendnumbritüüpi). Kui tahame täisarvulisele muutujale väärtuse määrata, peame selle funktsiooni int () abil teisendama. Teisendamine ei järgi ümmargust, vaid kustutab komaosa otse. Seega on väljundil int (juhuslik (5)) ainult 5 võimalust: 0, 1, 2, 3, 4.
Kui oleme juhusliku funktsiooni kasutamisega tutvunud, võime otse allpool toodud juhtumisse sattuda.
[cceN_cpp theme = "koidik"] int x, y; void setup () {suurus (300, 300); x = laius/2; y = kõrgus/2; } tühine viik () {taust (234, 113, 107); noStroke (); x += int (juhuslik (-5, 5)); y += int (juhuslik (-5, 5)); ellips (x, y, 50, 50); }
[/cceN_cpp]
Endised lisatud koordinaatide väärtused on fikseeritud. Ainult siis, kui suurendame juhuslikku väärtust, liigub ring määramata suunas. Suurema juhusliku vahemiku korral raputab see sagedamini. Kuna kaadritevaheline väärtuse muutus on põrganud, ei ole liikumine enam sujuv. Kui esimene raam on (150, 150), siis teine kaader liigub pilguga (170, 170).
13. samm: rändering
Rändering
Kas see loob sujuva liikumise? Funktsioonimüra võib meid aidata. Sellel on parem rütm kui tavalisel juhuslikul. Ja juhuslikult genereeritud juhuslikud numbrid on pidevalt.
Kutsumise vorming:
müra (t)
Funktsioonimüra ei saa määratleda selle väljundvahemikku. Programm määratleb, et see võib genereerida ainult ujukoma numbreid vahemikus 0 kuni 1 ja fikseeritud sisendil võib olla ainult fikseeritud väljund.
[cceN_cpp theme = "dawn"] float x = müra (5); ujuk y = müra (5); print (x, y); [/cceN_cpp]
Kuna ülaltoodud sisendparameetrid on 5, on väljundtulemused samad. Kuidas siis tulemust muuta? Vastus on muuta sisendparameetreid dünaamiliselt. Tegelikult võime müra pidada piiramatuks häälerajaks, sisendparameetrid on täpselt nagu "praegune aeg". Kui parameetrite sisend on pidev, on ka väljund pidev.
[cceN_cpp theme = "koidik"] float x, y; void setup () {suurus (700, 100); x = 0; taust (0); } tühine viik () {x += 1; y = müra (frameCount/100,0)*100; noStroke (); ellips (x, y, 2, 2); }
[/cceN_cpp]
Sel juhul joonistame Y muutustee, et saaksime funktsioonimürast paremini aru.
• Selle hulgast saab muutuv frameCount praeguse kaadri. Erinevalt eelmisest laiusest ja kõrgusest on see stabiilne ilma muudatusteta. Pealegi hakkab see tõusma nullist. Kui me mõistame seda oma esialgse kuva animeeritud graafika järgi, näitab see lehte, mille poole oleme pöördunud (pigem programmis oleva ajakontseptsiooni järgi).
• frameCount on täisarvuline muutuja. Jagatud teise täisarvumuutujaga, vaikimisi programm töötleb tulemust täisarvuna. Tulemuse täpsuse parandamiseks peame muutma 100 väärtuseks 100,0. Jagatud ujukomaarvuga saame ka ujukoma numbri.
• Y -telje muutmiseks 0 -lt 100 -le peame müra tulemuse korrutama 100 -ga. Seega saame juhusliku väärtuse vahemikku kontrollida.
Mõni teist mõtlemisvõimeline võib küsida: "miks me peame frameCountby 100 jagama? Kas pole õige kirjutada frameCount otse?" Muidugi sa suudad! Kuid siin, et funktsioonimüra omadusi paremini kuvada, aeglustame "ringhäälingu kiirust". Allolev näide näitab väljundväärtuse muutumist erineva muutumiskiiruse korral.
[cceN_cpp theme = "dawn"] float x, y1, y2, y3, y4, y5; void setup () {suurus (700, 500); x = 0; taust (0); } tühine viik () {x += 1; y1 = müra (frameCount)*100; y2 = müra (frameCount/10,0)*100; y3 = müra (frameCount/100,0)*100; y4 = müra (frameCount/1000.0)*100; y5 = müra (frameCount/10000,0)*100; noStroke (); ellips (x, y1, 2, 2); ellips (x, y2+100, 2, 2); ellips (x, y3+200, 2, 2); ellips (x, y4+300, 2, 2); ellips (x, y5+400, 2, 2); insult (80); joon (0, 100, laius, 100); joon (0, 200, laius, 200); joon (0, 300, laius, 300); joon (0, 400, laius, 400); }
[/cceN_cpp]
Funktsioonimüra muutuvaid parameetreid saate käsitada edenemisribana. Parameetri muutmine on nagu edenemisriba liigutamine. Niisiis, kui selle "hääleraja" muutuv ulatus on suurem, on väljundväärtuse esi- ja tagapõhised omadused nõrgemad. (Võime ette kujutada, mis juhtub, kui edastame muusikapala või video 2 -kordse kiirusega, 5 korda kiirust, 20 korda kiirust). Kui ulatus on suurem kui teatud väärtus, siis pole väärtuste genereerimisel juhusliku toimimise vahel suurt vahet.
Kui mõistate kõiki ülaltoodud näiteid, siis tunnete, et ränderingi joonistamine pole lihtsam. Saate aru ka sisemistest põhimõtetest.
[cceN_cpp theme = "koidik"] float x, y; void setup () {suurus (300, 300); x = 0; } tühine viik () {taust (234, 113, 107); x = müra (frameCount/100,0 + 100)*300; y = müra (frameCount/100,0)*300; noStroke (); ellips (x, y, 50, 50); }
[/cceN_cpp]
Nüüd on liikumine huvitavam nagu pöörlev güroskoop.
• Põhjus, miks muutuja x funktsioonimüra piires peab olema pluss 100, on tingitud asjaolust, et neid eraldatakse vahemaa tagant. Kui funktsiooni müra parameetrid xy on samad või üsna lähedased, on x, y koordinaadi muutus sama. Selle eesmärk on muuta liikumine palju juhuslikumaks.
14. samm: hiirega liigutatud ring
Järgmisena jõuame lõpuks kahe muutujani, mis mulle kõige rohkem meeldivad: mouseX ja mouseY. Kahe kontseptsiooni esmapilgul säravad mu silmad valgusest. Sest see on kõige otsesem viis graafikaga suhtlemiseks. Selle abil saame luua palju huvitavaid programme.
Juhtum on üsna lihtne:
[cceN_cpp theme = "koidik"] int x, y; void setup () {suurus (300, 300); x = 0; y = 0; } tühine viik () {taust (234, 113, 107); noStroke (); x = hiirX; y = hiirY; ellips (x, y, 50, 50); }
[/cceN_cpp]
mouseX saab hiire x -koordinaadi, hiirY aga y -koordinaadi.
• Proovime muuta positiivset ja negatiivset sümbolit või vahetada mouseX ja mouseY.
Samm: lõpetage
Nende tuttavate käskude abil saate võib -olla graafikat liigutada. Viimase peatüki sisuga kasutage oma kujutlusvõimet korralikult, saate luua palju huvitavaid animeeritud efekte.
Meie järgmises peatükis näeme rikkalikumaid näiteid. Samal ajal kasutame matemaatilisi funktsioone ja ühendame selle graafilise liikumisega.
See artikkel pärineb disainer Wenzylt.
16. samm: suhtelised näidud:
Huvitavad programmeerimisjuhised disainerile-esialgse puudutuse töötlemine
Huvitavad programmeerimisjuhised disainerile-looge oma esimene töötlusprogramm
See artikkel on pärit:
Kui vajate abi, võtke ühendust: [email protected].