Sisällysluettelo:

Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelmaprosessin ohjaus-Silmukkakertomus: 8 vaihetta
Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelmaprosessin ohjaus-Silmukkakertomus: 8 vaihetta

Video: Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelmaprosessin ohjaus-Silmukkakertomus: 8 vaihetta

Video: Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelmaprosessin ohjaus-Silmukkakertomus: 8 vaihetta
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Heinäkuu
Anonim
Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelman prosessinhallinta-silmukan lausunto
Mielenkiintoisia ohjelmointiohjeita suunnittelijalle-Ohjelman prosessinhallinta-silmukan lausunto

Ohjelmaprosessin ohjaus- silmukkalausunto

Tästä luvusta saat yhteyden tärkeään ja tehokkaaseen tietämyskiertoon.

Ennen kuin luet tämän luvun, jos haluat piirtää 10 000 ympyrää ohjelmaan, voit tehdä vain kauhealla menetelmällä. Eli kirjoitetaan 10 000 riviä ellipsikoodia. Ne laiskat koodisuunnittelijat, jotka haluavat parantaa tehokkuutta kaikin keinoin, eivät varmasti sallisi tämän tapahtuvan. Joten silmukkalauseke luodaan. Tämän lausunnon avulla voit intuitiivisesti tuntea tietokoneautomaation voiman.

Vaihe 1: silmukalle

On paljon silmukkalausekkeita, joista yleisimmin käytetty on For Loop. Me kaikki tiedämme, että funktionveto toimii jatkuvasti liikkeessä. Aloita ensimmäisestä virkkeestä alussa, se toteutetaan ylhäältä alas viimeiseen lauseeseen asti. Toimenpiteen päätyttyä se alkaa uudelleen ensimmäisestä lauseesta. Lausunto on vähän samanlainen kuin funktion piirtäminen. Lausekkeen sisällä oleva koodi voidaan suorittaa toistuvasti.

Tässä on sen kielioppirakenne:

For (lauseke 1; lauseke 2; lauseke 3) {

Silmukka runko

}

On selvää, että silmukan rungossa olevat lauseet odottivat toteutuvan toistuvasti. Lauseketta 1 käytetään alustamaan ja määrittämään ensimmäinen arvo silmukkamuuttujalle. Lauseke 2 on silmukan ehto. Lauseke 3 päivittää silmukan muuttujan arvon.

Mikä on silmukkamuuttuja? Se vastaa itse asiassa paikallista muuttujaa. Katsotaanpa kokonaista kirjoitusta.

(int i = 0; i <10; i ++) {

Silmukka runko

}

Silmukatoiminnon toteuttamiseksi lauseke perustuu lähinnä paikalliseen muuttujaan, jota käytetään silmukan päättämisessä. Paikallinen muuttuja yllä olevassa esimerkissä on i. Lauseke 1 on suorittanut paikallisen muuttujan alustuksen loppuun. Myöhemmin, aina kun silmukka toimii kerran, tämä muuttuja on päivitettävä. Edellä olevasta esimerkistä i ++ lausekkeessa 3 käytetään päivitystoiminnon toteuttamiseen. Sen kautta muuttuja kasvaa 1 joka kerta, kun se päivitetään. Lopulta silmukan rungon sisällä oleva koodi ei voi silmukata loputtomiin, muita jälkimmäisiä lausekkeita ei voida suorittaa. Tarvitsemme siis pääteolosuhteita. Express 2 on juuri sitä varten. Täällä ohjelma arvioi, onko i pienempi kuin 10. Jos on, jatka toimintaa. Jos ei ole, hyppää silmukasta.

Siksi lausekkeen toimintajärjestys on juuri tämä.

Lauseke 1 (paikallisen muuttujan alustus)

Lauseke 2 (tyytyväinen, jatka sitten käyttöä)

Silmukkakappale (ensimmäinen kierros)

Lauseke 3 (päivitys)

Lauseke 2 (tyytyväinen, jatka sitten käyttöä)

Silmukkakappale (toinen kierros)

Lauseke 3 (päivitys)

Lauseke 2 (tyytyväinen, jatka sitten käyttöä)

Silmukkakappale (kolmas kierros)…

Lauseke 3 (päivitys)

Lauseke 2 (ei tyytyväinen, hyppää sitten silmukasta)

Voit simuloida tätä suoritusjärjestystä päässäsi useita kertoja. Mutta on mahdotonta todella ymmärtää koodia kirjoittamatta sitä kerran kädelläsi. Kun haluamme löytää outon käsitteen, voimme tulostaa konsolin arvon println -käskyn avulla.

Koodiesimerkki (5-1): void setup () {

(int i = 0; i <10; i ++) {

println ("suorita");

}

}

Voit laskea käynnissä olevien tulosten määrän konsolissa. Tässä se on täsmälleen 10. Tämä kertoo kuinka monta kertaa silmukan rungon koodi on suoritettu. Emme kuitenkaan vieläkään pysty havaitsemaan, mitä muutoksia silmukassa on todella tapahtunut. Joten voimme yrittää muuttaa hahmoa "muuttujan" i "ja katsoa mitä tapahtuu.

Koodiesimerkki (5-2): void setup () {

(int i = 0; i <10; i ++) {

println (i);

}

}

Nyt voimme nähdä, että silmukan rungon arvo i kasvaa jatkuvasti. Myöhemmin voimme käyttää tätä arvoa ymmärtääksemme silmukan nykyisen prosessin.

Koodiesimerkissä (5-2) i: n arvo muutetaan arvosta 0 arvoon 9. Verrattuna todellisiin silmukka-aikoihin näyttää siltä, että sillä on aina 1 vähemmän. Jos et ole tottunut siihen, lausekkeen suluissa oleva lauseke voidaan kirjoittaa seuraavaan:

(int i = 1; i <= 10; i ++)

Siten i vastaa vankeudessa silmukka -aikoja. "<=": n merkitys on pienempi ja yhtä suuri kuin. Joten kun i on 10, se täyttää edelleen ehdon. Siksi se toimii vielä kerran verrattuna siihen, että se on kirjoitettu i <10. Vaikka se alkaa 1: stä, silmukka -ajat ovat edelleen 10. Tietenkin, jos mitään erityistä ei tarvita, haluaisin ehdottaa, että otat käyttöön kirjoitusmenetelmän esimerkki alussa. Myöhemmin esittelemme sinulle vektorin tai matriisin, jotka molemmat saavat sen elementin sen alaindeksistä. Ja oletusindeksit alkavat nollasta. Alkuperäisen arvon määrittäminen arvoon 0 on suhteellisen yleinen käytäntö.

Jos yllä olevassa esimerkissä kirjoitetaan, että i on yli 0, pogrammi kaatuu. Koska muuttuja kasvaa jatkuvasti, se ei koskaan täytä tätä ehtoa. Tämä on aivan kuin sitä ei voi koskaan pysäyttää niin, että ohjelma ajaa loputtomaan silmukkaan.

For-lausekkeen paikalliset muuttujat eivät voi vain ilmoittaa muovityyppejä vaan myös muuttujia liukulukutyypeissä. Se voidaan kirjoittaa esimerkiksi muotoon (float i = 0; i <10; i + = 0,02).

Vaihe 2: Käytä silmukkaa matemaattisten ongelmien ratkaisemiseen

Muistatko vielä tarinan matemaatikko Gaussista lapsuudessaan? Guass oli tuolloin 10 -vuotias. Hänen opettajansa halusi antaa tehtävän luokalla ja kysymys oli

1+2+3+4……+97+98+99+100=?

Jos lasket käsilläsi, se vie paljon aikaa. Mutta Guass näyttää jo keksineen aritmeettisen sekvenssin summausmenetelmän. Joten heti kysymyksen esittämisen jälkeen hän lausui vastauksen helposti, mikä oli hämmästynyt suuresti hänen opettajansa.

Emme ehkä vielä muista, mikä on aritmeettisen sekvenssin summaus, mutta voimme saada vastauksen alkeellisella ja väkivaltaisella tavalla. Ja se on silmukalle. Koska tietokoneet voivat laskea vain pienen palan, meidän on kuvattava kysymys kielellä, jonka tietokone voi tunnistaa, niin voimme helposti saada vastauksen.

Koodiesimerkki (5-3):

void setup () {

int vastaus = 0;

(int i = 1; i <= 100; i ++) {

vastaus += i;

}

println (vastaus);

}

Uskon, että saamasi tulos on sama kuin Guassin ilmoittama vastaus: se on 5050!

Vinkkejä: Silmukan paikallisten muuttujien nimi voidaan muuttaa halutessaan, jos se noudattaa muuttujien nimeämistä koskevia määräyksiä. Voit kirjoittaa sen muotoon (int k = 1; k <= 100; k ++). Jos erityisiä olosuhteita ei tapahtunut, oletusarvo on muuttujan nimi i.

Vaihe 3: Silmukkapiirros

Useiden näennäisen tylsien vuodevaatteiden jälkeen voimme vihdoin tulla mielenkiintoisempaan osioon. Sitä käytetään silmukoiden piirtämiseen. Voimme nyt sivuuttaa nuo tylsiä matemaattisia laskelmia. Me suunnittelijat olemme herkempiä grafiikalle.

Käytä silmukassa ympyräjoukon piirtämiseen

Kun haluamme käyttää silmukkaa edustamaan toistuvien elementtien ryhmää, meidän on varmistettava näiden elementtien numeerinen suhde etukäteen, ja sitten voimme käyttää silmukkaa sen toteuttamiseen kätevästi sen sijaan, että teemme massiivista toistotyötä. Oletetaan, että jos haluamme piirtää ympyrän rivin, joka on jaettu tasaisesti vaakasuunnassa. Sen virtuaalinen koordinaatti on muuttumaton, kun taas sen horisontaalinen koordinaatti muuttuu. Ja vasemmalta oikealle horisontaalinen koordinaatti kasvaa jatkuvasti ja kasvava etäisyys on sama. Tällä hetkellä voimme käyttää i in for loop saadaksemme kunkin ympyrän vaakasuoran koordinaatin.

Koodiesimerkki (5-4): void setup () {

koko (700, 700);

tausta (83, 51, 194);

noStroke ();

}

void draw () {

(int i = 0; i <7; i ++) {

ellipsi (50,0 + i * 100,0, korkeus/2,0, 80,0, 80,0);

}

}

50 tarkoittaa ensimmäisen ympyrän lähtöasentoa vasemmalla. 100 in i * 100 edustaa kasvavaa etäisyyttä.

Vaihe 4: Käytä silmukkaa satunnaisen pyöreän pisteen piirtämiseen

Yllä oleva graafinen sijainti on ennustettavissa. Tämä minimoi paljon kiinnostusta. Voimme käyttää funktiota satunnaisesti, johon viittasimme edellisessä luvussa, ja yrittää kirjoittaa sen piirustusfunktioon.

Koodiesimerkki (5-5):

void setup () {

koko (700, 700);

tausta (0);

noStroke ();

}

void draw () {

tausta (0);

(int i = 0; i <10; i ++) {

float randomWidth = satunnainen (60,0);

ellipsi (satunnainen (leveys), satunnainen (korkeus), satunnaisleveys, satunnaisleveys));

}

}

Tässä syy, miksi ympyrän sijainti vilkkuu jatkuvasti, johtuu siitä, että jokainen funktio satunnaisesti toimii kerran, tulos on satunnainen. Koska funktion piirtäminen on oletusarvoisesti 60 kuvaa sekunnissa, niin joka sekunnissa piirretty 10 ympyrää muuttaa sijaintiaan 60 kertaa. Tämä nopea salama saa kuvan näyttämään olevan enemmän kuin vain 10 ympyrää. Yksinkertaisen arvon muuttaminen ohjelmassa tuo sinulle täysin erilaisen vaikutuksen. Voimme muuttaa silmukka -aikoja tarkistamalla päätelaitteen tilan. Alla olevan kuvan päätelaite on i <100

  1. Tässä on vaikutus, kun päätelaite on i <1000:
  2. RandomSeed
  3. Jos en halua, että ympyrän sijainti ja sen salama luodaan satunnaisesti, mitä voin tehdä? Yksi tapa on rakentaa ja tallentaa riippumattomia muuttujia kullekin ympyrälle ja alustaa nämä muuttujat asetuksissa. Määritä näille muuttujille satunnainen arvo. Näin ollen, kun piirtotoimintoa käytetään piirtämisen aikana, kutsuimme muuttujiin tallennettua arvoa. Se ei muutu milloin tahansa. Voit piirtää 10 ympyrää käyttämällä tätä menetelmää. Mutta entä jos haluamme piirtää 1000 ympyrää tai 10 000 ympyrää? On melko hankalaa, jos käytämme tätä perinteistä menetelmää näiden muuttujien rakentamiseen ja nimeämiseen. Meidän ei tarvitse oppia uutta muuttujanmuodostusmenetelmää. Tässä on joustava menetelmä, joka voi auttaa meitä saavuttamaan tämän tavoitteen. Eli käyttää randomSeediä. Katsotaanpa nyt sen vaikutusta käytön jälkeen. Koodiesimerkki (5-6): [cceN_cpp theme = "dawn"] void setup () {koko (700, 700); tausta (0); noStroke ();}
  4. void draw () {

    tausta (0);

    randomSeed (1);

    (int i = 0; i <10; i ++) {

    float randomWidth = satunnainen (20,0, 60,0);

    ellipsi (satunnainen (leveys), satunnainen (korkeus), satunnaisleveys, satunnaisleveys));

    }

    } [/cceN_cpp]

    Aiempaan koodiin verrattuna siihen ei tule muutoksia, paitsi jos ympyrän sädealue muuttuu 10: stä yli 30: een vain lauseella ofSeedRandom. Tämän lauseen lisäämisen jälkeen grafiikka näyttää muuttuneelta.

    Kutsumuoto:

    randomSeed (a);

    Tämän muodon joukossa a -asetus on siemen. Sinun on täytettävä kokonaisluku (kirjoita liukuluku P5 -arvoon, se ei mene pieleen, mutta käsittelee sitä kokonaislukuna) siihen. RandomSeedin tehtävä on asettaa siemen satunnaiselle arvolle. Sitten se luo erilaisia satunnaisia matriiseja eri siementen mukaan. Sen jälkeen kutsumme funktion satunnaiseksi niin, että palautuksen tulos on varma. Tässä määritelmä ei ole tulos, joka on tietty arvo, vaan generoidulle taulukolle. Toisin sanoen paluun tulos on selvä suhteessa vetoamisaikoihin.

    Koodiesimerkki (5-7): [cceN_cpp theme = "dawn"] void setup () {

    randomSeed (0);

    (int i = 0; i <5; i ++) {

    println (satunnainen (10));

    }

    } [/cceN_cpp]

    Nyt jatkamme kokeilua println: n avulla. RandSeedin käytön jälkeen joka kerta, kun suljet ohjelman ja käynnistät ohjelman uudelleen, se palaa saman tuloksen merkkijonoon. Arvo vastaa järjestystä yksitellen. Jos poistat sen, se palautuu joka kerta eri arvoon. Miksi sillä on tämä asetus? Se johtuu siitä, että itse satunnaisarvo ohjelmassa on pseudo -satunnainen. Tulos vaikuttaa satunnaiselta, mutta itse asiassa se syntyy kiinteällä ja toistettavalla laskentamenetelmällä. Se vastaa primitiivisen arvon määrittämistä randomSeedille, jolloin seuraava tulos lasketaan tämän siemenen mukaan. Jos emme kuitenkaan nimeä siementä, ohjelma käyttää oletusarvoisesti järjestelmän nykyistä aikaa siementen luomiseen. Siksi jokaisen operaation tulos on erilainen. Alla oleva esimerkki voi auttaa sinua ymmärtämään paremmin randomSeedia.

    Esimerkkikoodi (5-8): [cceN_cpp theme = "dawn"] void setup () {

    koko (700, 700);

    tausta (0);

    noStroke ();

    }

    void draw () {

    randomSeed (1);

    (int i = 0; i <10; i ++) {

    float randomWidth01 = satunnainen (10, 60);

    ellipsi (satunnainen (leveys), satunnainen (korkeus), satunnaisleveys01, satunnaisleveys01);

    println (randomWidth01);

    }

    randomSeed (1);

    (int i = 0; i <10; i ++) {

    float randomWidth02 = satunnainen (10, 60);

    ellipsi (satunnainen (leveys), satunnainen (korkeus), satunnaisleveys02, satunnaisleveys02);

    println (randomWidth02);

    }

    } [/cceN_cpp]

    Yritä muuttaa toinen randomSeed (1) randomSeed (0): ksi ja verrata lopullisia tuloksia.

    Vinkkejä: P5: ssä meidän on vain vedettävä funktio noLoop arvonnan lopussa, jotta voimme saada saman vaikutuksen. Sen tehtävä on lopettaa ohjelma. Se on aivan erilainen kuin edellä luetellut toimintaperiaatteet.

Vaihe 5: Käytä silmukkaa viivan piirtämiseen

Kun olemme hallinneet randomSeedin käytön, voimme yrittää muuttaa piirtotoimintoa. Muuta esimerkiksi ympyräpiirustus viivapiirrokseksi. Vain jos suunnittelemme muuttuvia määräyksiä rivin loppuun, voimme käyttää monia rivejä kietoutuneena ainutlaatuisen kuvion luomiseksi.

Koodiesimerkki (5-9):

[cceN_cpp theme = "dawn"] mitätön asennus () {

koko (700, 700);

tausta (0);

}

void draw () {

randomSeed (0);

(int i = 0; i <2000; i ++) {

kelluva x1 = leveys/2,0;

float x2 = satunnainen (50,0, 650,0);

aivohalvaus (255, 20);

linja (x1, 50, x2, 650);

}

} [/cceN_cpp]

Luo yksinkertainen harja

Takaisin silmukkaan. Yllä olevat esimerkit eivät ole vuorovaikutteisia. Jos haluamme tehdä tuloksesta mielenkiintoisemman, emme voi unohtaa yhdistää mouseX- ja mouseY -koodimme.

Koodiesimerkki (5-10):

[cceN_cpp theme = "dawn"] mitätön asennus () {

koko (700, 700);

tausta (255);

noStroke ();

}

void draw () {

(int i = 0; i <1000; i ++) {

täyttö (0, 30);

float x = hiiriX + satunnainen (-50, 50);

float y = hiiriY + satunnainen (-50, 50);

ellipsi (x, y, 2, 2);

}

} [/cceN_cpp]

"Sirontapisteiden" harja luodaan. Koska jokainen intensiivinen minipyöräpiste sijaitsee hiiren asennossa, se voi siirtää rajoitettuja suuntoja neljästä suunnasta vasemmalta, oikealta, ylös ja alas. Joten harjan lopullinen muodonjako on samanlainen kuin neliö.

Koodiesimerkki (5-11):

[cceN_cpp theme = "dawn"] mitätön asennus () {

koko (700, 700);

tausta (255);

noStroke ();

}

void draw () {

(int i = 0; i <1000; i ++) {

float -suhde = mouseX/(float) leveys;

float x = hiiriX + satunnainen (-50, 50);

float y = hiiriY + satunnainen (-50, 50);

täyttö (0, suhde * 255, 255 * (1 - suhde), 30);

ellipsi (x, y, 2, 2);

}

}

[/cceN_cpp]

Jos käytämme mouseX -arvoa vaikuttamaan täyttöväriin, saamme paljon maagisemman värigradientin.

Vaihe 6: Loop Nested

Silmukka voidaan sisäkkäin. Voit kirjoittaa for -silmukan uudelleen for -silmukkaan. Kun haluat piirtää kaksiulotteisen pistematriisin, voit valita tämän menetelmän.

Koodiesimerkki (5-12):

[cceN_cpp theme = "dawn"] mitätön asennus () {

koko (700, 700, P2D);

tausta (202, 240, 107);

}

void draw () {

täyttö (0);

(int i = 0; i <5; i ++) {

(int j = 0; j <5; j ++) {

float x = 150 + i * 100;

float y = 150 + j * 100;

ellipsi (x, y, 60, 60);

println (i + ":" + j);

}

}

}

[/cceN_cpp]

Jos haluat käyttää sisäkkäistä silmukkaa ensimmäisen kerran, sinun on selvitettävä sen logiikka -suhteet. Ohjelman koodin toteutus on aina ylhäältä alas. Siksi ensimmäinen toteutettu on ehdottomasti uloin silmukka. Aina kun ulompi silmukka toimii kerran, sisäinen silmukka toimii jatkuvasti, kunnes se ei enää täytä ehtoa. Sen jälkeen se aloittaa toisen ulkoisen silmukan. Toisen toimenpiteen aloittamisen jälkeen sisäinen silmukka jatkaa konetta, kunnes se ei täytä ehtoa. Tällainen toisto tapahtuu, kunnes kaikki ehdot eivät täyty ja se hyppää silmukasta.

Yllä olevassa koodissa ulkosilmukan silmukkakappale on toiminut yhteensä 5 kertaa, kun taas sisäisen silmukan runko on toiminut 25 kertaa. 25 kertaa i, j -arvon eron mukaan voimme varmistaa ympyrän vaaka- ja pystysuuntaisen koordinaatin erikseen. Olen upottanut osan painoksesta, voit tarkkailla tulostusjälkeä ja ajatella sen muutosta. Vain kahdella sisäkkäisellä silmukalla voimme kokea kaikki i, j -datan yhdistelmät.

Vinkkejä

Toisen kerroksen silmukka tiivistyy yleensä Tabin kanssa alussa. Tämä voi tehdä koodirakenteesta selkeämmän. Sinun on nimettävä paikalliset muuttujat silmukan kahdessa kerroksessa eri nimillä. Niistä yleisimmin käytetään "i", "j", "k".

Joustava käyttö "i", "j"

Kaksi muuttujan nimeä "i", "j" edustavat silmukan kahden kerroksen paikallisia muuttujia. Alla oleva esimerkki syventää ymmärrystäsi sanoista "i" "j". "I", "j" -arvon eri arvon mukaan voimme syöttää parametreja elementtien ryhmittelyyn.

Koodiesimerkki (5-13): [cceN_cpp theme = "dawn"] void setup () {

koko (700, 700);

tausta (0);

noStroke ();

}

void draw () {

tausta (0);

täyttö (250, 233, 77);

(int i = 0; i <7; i ++) {

(int j = 0; j <7; j ++) {

pushMatrix ();

kääntää (50 + i * 100, 50 + j * 100);

// Asetus 1

// kellukulma = sin (millis ()/1000,0) * PI/2;

// Asetus 2

// kelluva suhde = i/7,0;

// kellukulma = sin (millis ()/1000,0 + suhde * (PI/2)) * PI/2;

// Asetus 3

float -suhde = (i * 7 + j)/49,0;

kellukulma = sin (millis ()/1000,0 + suhde * (PI/2)) * PI/2;

kiertää (kulma);

rectMode (KESKUS);

// Piirrä kuva 1

oikea (0, 0, 80, 80);

// Piirrä kuva 2

// oikea (0, 0, 100, 20);

// Piirrä kuva 3

// oikea (0, 0, suhde * 50);

popMatrix ();

}

}

} [/cceN_cpp]

Koodin selitys

rectMode (CENTER) voi muuttaa neliön piirtomenetelmää. Suoran alkuperäistä kahta parametria rect käytetään määrittämään neliön vasemman yläkulman koordinaatti. Kun olemme aloittaneet tämän komennon, näitä kahta parametria käytetään neliön keskipisteen koordinaatin asettamiseen. Koska täällä käytämme paterrn -kiertoa kierton kautta, joten meidän on käytettävä tätä menetelmää keskipisteen vetämiseksi koordinaatin alkuperäiseen pisteeseen.

millis () hakee ajan ohjelman alkamisesta nykyhetkeen. Yksikkö on ms Tämä arvo vaikuttaa sinin lähtöarvon muuttuvaan nopeuteen. Jos kirjoitamme milliä suoraan, muuttuva asteikko on liian suuri. Meidän on siis jaettava se 1000,0: lla.

Tässä koodiosassa käytämme kommenttisymbolia "//" piilottaaksemme useita asetuksia. Voit siirtää tehosteita aloittamalla tai sulkemalla. Jos esimerkiksi aloitamme lauseet "asetuksen 3" takana, meidän on käytettävä kommenttisymbolia sulkeaksemme koodilauseet "asetus 1" ja "asetus 2". Esimerkkejä tästä samanlaisesta ohjelmarakenteesta, jossa on erilaisia paikallisia muuttujia, voimme kirjoittaa tässä muodossa. Siksi meidän ei tarvitse tallentaa useita teknisiä asiakirjoja erikseen. Voimme käyttää tätä taitoa usein harjoittelun ja luomisen aikana ja säilyttää joitakin tyydyttäviä parametriasetuksia.

Niistä i, j -arvon vaikutus ohjelmaan näkyy pääasiassa siirtymällä "Asetus 1 (Asetus 2) (Asetus 3)". Voit verrata tulosten tuloksia alla.

Piirrä kuva 1: Asetus 1

Piirrä kuva 1: Asetus 2

Piirrä kuva 1: Asetus 3

Piirrä kuva 2: Asetus 1

Piirrä kuva 2: Asetus 2

Piirrä kuva 2: Asetus 3

Asetuksessa 1 emme ole käyttäneet i ja j vaikuttamaan kunkin elementin kiertokulmaan. Näin voimme nähdä jokaisen elementin liikkeen olevan sama. Asetuksessa 2 olemme käyttäneet i -arvoa ja sekä i että j asetuksessa 3. Lopuksi ne ovat vaikuttaneet funktion sin parametrituloon suhteen kautta. Tämä on muuttanut määräajoista kulmanvaihtoa. Koska asetusten 2 ja 3 todellinen vaikutus ei ole niin ilmeinen animoidussa grafiikassa, voimme havaita sen seuraavasta kuvakaappauksesta.

Piirrä kuva 2 (vasen: asetus 2; oikea: asetus 3)

Piirrä kuva 3 (vasen: asetus 2; oikea: asetus 3)

Ensimmäisessä kuvassa suhdetta käytetään vaikuttamaan neliön kiertokulmaan. Toisessa kuvassa sitä halutaan ohjata suoraan ympyrän säteellä. Voimme nähdä, että se on käyttänyt i -arvon lausetta:

kelluva suhde = i/7,0;

Sen pystysuoran elementin muutos on johdonmukainen. Koska kuvan hallinnan vaakakoordinaatit riippuvat vain i: n arvosta, niin pattermit, joilla on sama vaakakoordinaatti, ovat samat. Ja suhteen, pyörimiskulman ja ympyrän säteen arvo on sama.

Samaan aikaan käytämme i, j lauseita:

float -suhde = (i * 7 + j)/49,0;

Se voi kuvata "kaltevuuden". Tässä kerrottavalla menetelmällä se on yhdistänyt rivien ja sarakkeiden vaikutuksen. Joten jokainen elementti on erilainen.

Vaihe 7: Silmukan aikana

Silmukkaa varten on veli. Se on kun silmukka. Mitä silmukka voi tehdä, kun taas silmukka voi tehdä senkin. Mutta while -silmukan käyttötaajuus creativeCodingissa ei ole korkea kuin silmukan.

Koodiesimerkki (5-14): [cceN_cpp theme = "dawn"] void setup () {

int a = 0;

kun taas (a <10) {

println (a);

a ++;

}

} [/cceN_cpp]

Vaikka kielioppirakenne on helpompi ymmärtää kuin. Voimme luoda muuttujia ennen lausetta. Täytä sitten lauseke hakasulkeeseen. Kun se on tyytyväinen, käytä lauseita silmukan rungossa. Lopuksi laitamme lausekkeen silmukan runkoon päivittääksemme muuttujat, sitten kun silmukka on valmis. Mitä tulee varmistettuihin silmukka -aikoihin, käytämme usein silmukkaa. Mitä tulee epämääräiseen muuttujan arvoon, suosittelemme käyttämään silmukkaa.

Ajatella:

Yritä käyttää kaikenlaisia peruselementtejä piirustuselementtien korvaamiseksi silmukassa erilaisten siveltimien luomiseksi.

Yhdistä viimeisessä luvussa kuvatun trigonometrisen funktion kanssa ja yritä muuttaa "sirontapisteiden" harjaa pyöreäksi harjaksi.

Yritä tehdä kaksiulotteinen pistematriisi, jossa on vain for loop.

Seuraavan luvun esikatseluKuten tällä kurssilla, löydät kaikki oppimasi uudet tiedot, pelaamisen mahdollisuus kasvaa välittömästi paljon. Ohjelma on pandora -laatikko. Kaikki mitä voit kuvitella, se voi tehdä sen puolestasi. Joten meillä ei ole mitään syytä olla oppimatta tätä kieltä, joka voi kommunikoida tietokoneiden kanssa. Seuraavassa luvussa esittelemme sinulle toisen prosessinhallintalausunnon. Se voi hallita prosessivirtaa ja tuottaa monimutkaisempia ja muuttuvia tuloksia. If-lausunnon avulla voit luoda omia tekstiseikkailupelejäsi helposti! Tämä artikkeli on peräisin suunnittelija Wenzyltä. - Hanki kuvasi (osa 1) Mielenkiintoisia ohjelmointiohjeita suunnittelijalle - Ota kuva käyttöön (osa 2)

Vaihe 8: Lähde

Tämä artikkeli on osoitteesta

Jos sinulla on kysyttävää, voit ottaa yhteyttä osoitteeseen : [email protected].

Suositeltava: