Inhoudsopgave:

Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement: 8 stappen
Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement: 8 stappen

Video: Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement: 8 stappen

Video: Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement: 8 stappen
Video: OPKOMENDE BEDREIGINGEN - Hoorzittingen van de Amerikaanse Senaat over AARO / UFO's / UAP 2024, November
Anonim
Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement
Interessante programmeerrichtlijnen voor ontwerper--Program Process Control- Loop Statement

Programma Proces Controle- Loop Statement

Vanuit dit hoofdstuk komt u in contact met een belangrijke en krachtige kennis point-Loop Statement.

Voordat je dit hoofdstuk leest, als je 10.000 cirkels in het programma wilt tekenen, kun je alleen een vreselijke methode gebruiken. Dat wil zeggen 10.000 regels ellipscode schrijven. Die luie codeontwerpers die de efficiëntie met alle middelen willen verbeteren, zouden dit zeker niet laten gebeuren. Er wordt dus een lusinstructie gemaakt. Met deze verklaring voel je intuïtief de kracht van computerautomatisering.

Stap 1: Voor lus

Er zijn veel loop-statements, waarvan For Loop de meest gebruikte is. We weten allemaal dat functietrekking continu in omloop is. Begin bij de eerste zin aan het begin, het zal van boven naar beneden worden uitgevoerd tot de laatste zin. Nadat het een bewerking heeft voltooid, begint het opnieuw vanaf de eerste zin. Want statement lijkt een beetje op functie draw. Code binnen voor instructie kan herhaaldelijk worden uitgevoerd.

Hier is de grammaticale structuur:

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

Lus lichaam

}

Het is duidelijk dat zinnen binnen de body van de lus datgene zijn waarvan we verwachtten dat ze herhaaldelijk zouden worden geïmplementeerd. Expressie 1 wordt gebruikt om de eerste waarde te initialiseren en toe te wijzen aan de lusvariabele. Expressie 2 is voor lusvoorwaarde. Expressie 3 zal de waarde van de lusvariabele bijwerken.

Wat is loopvariabele? Het is eigenlijk gelijk aan een lokale variabele. Laten we eens een volledig schrijven bekijken.

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

Lus lichaam

}

Om de lusfunctie te realiseren, is de instructie voornamelijk afhankelijk van een lokale variabele, die zal worden gebruikt bij de lusbeëindiging. De lokale variabele in het bovenstaande voorbeeld is i. Expressie 1 heeft de initialisatie van de lokale variabele voltooid. Later, elke keer dat de lus een keer werkt, moet deze variabele worden bijgewerkt. Van het bovenstaande voorbeeld wordt i++ in uitdrukking 3 gebruikt om de updatefunctie te realiseren. Hierdoor zal de variabele elke keer dat deze wordt bijgewerkt met 1 toenemen. Uiteindelijk kan de code in de body van de loop niet oneindig herhalen, anders kunnen de laatstgenoemde statements niet worden uitgevoerd. We hebben dus een terminale voorwaarde nodig. Express 2 is er gewoon voor. Hier zal het programma beoordelen of i kleiner is dan 10. Als dat zo is, ga dan verder. Als dat niet het geval is, spring dan uit de lus.

Daarom is de bewerkingsvolgorde van for-statement precies zo.

Expressie 1 (lokale variabele initialisatie)

Uitdrukking 2 (Tevreden, ga dan verder met werken)

Luslichaam (Eerste circulatie)

Expressie 3 (bijwerken)

Uitdrukking 2 (Tevreden, ga dan verder met werken)

Luslichaam (Tweede circulatie)

Expressie 3 (bijwerken)

Uitdrukking 2 (Tevreden, ga dan verder met werken)

Luslichaam (Derde circulatie) …

Expressie 3 (bijwerken)

Uitdrukking 2 (Niet tevreden, spring dan uit de lus)

Je kunt deze volgorde van uitvoering meerdere keren in je hoofd simuleren. Maar het is onmogelijk om de code echt te begrijpen zonder deze een keer met je hand te typen. Als we een vreemd concept willen achterhalen, kunnen we de waarde in de console afdrukken via het println-statement.

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

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

println ("uitvoeren");

}

}

U kunt het aantal uitgevoerde uitvoer in de console tellen. Hier is het precies 10. Dit vertelt je hoe vaak de code in de loop-body is uitgevoerd. We kunnen echter nog steeds niet detecteren welke wijzigingen er daadwerkelijk in de lus zijn gebeurd. Dus we kunnen proberen het karakter "run in variabele "i" te veranderen en kijken wat er zal gebeuren.

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

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

println (i);

}

}

Nu kunnen we zien dat de waarde i in het lichaam van de lus voortdurend toeneemt. Later kunnen we deze waarde gebruiken om het huidige proces van de lus te begrijpen.

In codevoorbeeld (5-2) wordt de waarde van i gewijzigd van 0 in 9. Vergeleken met de werkelijke lustijden lijkt het er altijd 1 minder te hebben. Als je er niet aan gewend bent, kan de uitdrukking tussen haakjes van for statement naar het volgende worden geschreven:

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

Dus i komt terecht overeen met lustijden. De betekenis van "<=" is kleiner dan en gelijk aan. Dus als i gelijk is aan 10, voldoet het nog steeds aan de voorwaarde. Daarom zal het opnieuw werken in vergelijking met het schrijven naar i < 10. Hoewel het begint bij 1, zijn de lustijden nog steeds 10. Natuurlijk, als er niets speciaals nodig is, zou ik u willen voorstellen om de schrijfmethode in de voorbeeld aan het begin. Later zullen we vector of array aan u introduceren, die beide hun element verkrijgen door hun subscript. En de standaard subscripts beginnen allemaal vanaf 0. Het is relatief gebruikelijk om de initiële waarde als 0 te definiëren.

Als we in het bovenstaande voorbeeld schrijven dat i voorbij 0 is, zal het programma crashen. Omdat de variabele constant toeneemt, zal deze nooit aan deze voorwaarde voldoen. Dit is net alsof het nooit kan worden gestopt, zodat het programma in een eindeloze lus terechtkomt.

Lokale variabelen in de for-instructie kunnen niet alleen plastic typen declareren, maar ook variabelen in typen met drijvende komma. Het kan bijvoorbeeld worden geschreven als (float i = 0; i <10; i + = 0.02).

Stap 2: Gebruik for Loop om wiskundige problemen op te lossen

Herinner je je nog een verhaal van wiskundige Gauss in zijn jeugd? Op dat moment was Guass 10 jaar oud. Zijn leraar wilde een taak toewijzen in de klas en de vraag was:

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

Als u met uw handen rekent, kost het u veel tijd. Maar Guass lijkt de methode voor het optellen van de rekenkundige reeks al te hebben ontdekt. Dus vlak nadat de vraag was gesteld, sprak hij het antwoord met gemak uit, wat zijn leraar enorm had verrast.

Nu herinneren we ons misschien niet meer wat de som van de rekenkundige reeks is, maar we kunnen het antwoord op een primitieve en gewelddadige manier krijgen. En dat is voor de lus. Aangezien het voor computers een fluitje van een cent is om te tellen, moeten we de vraag beschrijven in een taal die door de computer kan worden herkend, dan kunnen we gemakkelijk ons antwoord krijgen.

Codevoorbeeld (5-3):

ongeldige setup(){

int antwoord = 0;

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

antwoord += ik;

}

println(antwoord);

}

Ik geloof dat het resultaat dat je krijgt hetzelfde is als het antwoord dat Guass meldde: het is 5050!

Tips: De naam van lokale variabelen in for-lus kan naar believen worden gewijzigd op voorwaarde dat deze zich houdt aan de regels voor het benoemen van variabelen. Je kunt het schrijven als (int k = 1;k <= 100;k++). Als er geen speciale omstandigheden zijn opgetreden, wordt i standaard ingesteld als de naam van de variabele.

Stap 3: Voor lustekening

Na een reeks schijnbaar saaie beddengoed, kunnen we eindelijk in een interessanter gedeelte komen. Dat is om te gebruiken voor lus om afbeeldingen te tekenen. We kunnen die vervelende wiskundige berekening nu opzij zetten. Wij ontwerpers zijn gevoeliger voor graphics.

Gebruik For Loop om een cirkelarray te tekenen

Als we for loop willen gebruiken om een groep herhaalde elementen weer te geven, moeten we ervoor zorgen dat de numerieke relatie van deze elementen vooraf is, dan kunnen we for loop gebruiken om het gemakkelijk te realiseren in plaats van massaal herhalingswerk te doen. Stel dat we een rij cirkels willen tekenen, gelijkmatig verdeeld in horizontale richting. De virtuele coördinaat is ongewijzigd, terwijl de horizontale coördinaat wordt gewijzigd. En van links naar rechts neemt de horizontale coördinaat voortdurend toe en is de toenemende afstand hetzelfde. Op dit moment kunnen we i in for loop gebruiken om de horizontale coördinaat van elke cirkel te krijgen.

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

grootte (700, 700);

achtergrond(83, 51, 194);

geen slag();

}

nietig tekenen(){

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

ellips (50.0 + i * 100,0, hoogte/2,0, 80,0, 80,0);

}

}

50 staat voor de startpositie van de eerste cirkel links. 100 in i * 100 staat voor de toenemende afstand.

Stap 4: Gebruik for Loop om een willekeurig rond punt te tekenen

De bovenstaande grafische positie is voorspelbaar. Dit zal veel belangstelling minimaliseren. We kunnen de functie willekeurig gebruiken waarnaar we in het vorige hoofdstuk hebben verwezen en proberen deze in de tekenfunctie te schrijven.

Codevoorbeeld (5-5):

ongeldige setup(){

grootte (700, 700);

achtergrond(0);

geen slag();

}

nietig tekenen(){

achtergrond(0);

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

float randomWidth = willekeurig (60.0);

ellips (willekeurig (breedte), willekeurig (hoogte), willekeurige breedte, willekeurige breedte);

}

}

Hier is de reden waarom de positie van de cirkel continu knippert, omdat elke keer dat de willekeurige functie een keer werkt, het resultaat willekeurig is. Omdat functietekenen standaard 60 frames per seconde uitvoert, verandert elke 10 cirkels die in een seconde worden getekend, 60 keer van positie. Door deze snelle flits lijkt de foto meer dan 10 cirkels te hebben. Als u een eenvoudige waarde in het programma wijzigt, krijgt u een totaal ander effect. We kunnen de lustijden wijzigen door de terminalvoorwaarde te herzien. De terminale toestand in de onderstaande afbeelding is i < 100

  1. Dit is het effect wanneer de eindtoestand i < 1000 is:
  2. Willekeurig Zaad
  3. Als ik niet wil dat de positie van de cirkel willekeurig wordt gegenereerd, evenals de flits, wat kan ik dan doen? Een methode is om onafhankelijke variabelen voor elke cirkel te bouwen en op te slaan en deze variabelen in de setup te initialiseren. Wijs deze variabelen een willekeurige waarde toe. Dus bij het gebruik van de tekenfunctie binnen draw, hebben we de waarde aangeroepen die is opgeslagen in variabelen. Het zal op geen enkel moment veranderen. Om 10 cirkels te tekenen, kunnen we gewoon deze methode gebruiken. Maar wat als we 1000 cirkels willen tekenen, of 10.000 cirkels? Het zal behoorlijk lastig zijn als we deze traditionele methode gebruiken om deze variabelen te bouwen en een naam te geven. We hoeven geen nieuwe methode voor het bouwen van variabelen te leren. Hier is een flexibele methode die ons kan helpen dit doel te bereiken. Dat is om randomSeed te gebruiken. Laten we nu eens kijken naar het effect na gebruik. Codevoorbeeld (5-6):[cceN_cpp theme="dawn"] void setup(){ size(700, 700); background(0);noStroke();}
  4. nietig tekenen(){

    achtergrond(0);

    willekeurig Zaad(1);

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

    float randomWidth = willekeurig (20.0, 60.0);

    ellips (willekeurig (breedte), willekeurig (hoogte), willekeurige breedte, willekeurige breedte);

    }

    } [/cceN_cpp]

    Vergeleken met de vorige code, heeft deze geen wijzigingen, behalve dat het straalbereik van de cirkel verandert van 10 naar meer dan 30 met alleen een zin van SeedRandom. Nadat deze zin is toegevoegd, lijkt de afbeelding statisch te worden.

    Invoke-indeling:

    willekeurig Zaad (a);

    Onder dit formaat is de instelling van a seed. Je moet een geheel getal invullen (schrijf een drijvende-kommawaarde in P5, het zal niet fout gaan maar behandel het als een geheel getal) erin. De functie van randomSeed is om de seed voor willekeurige waarde in te stellen. Dan zal het verschillende willekeurige arrays genereren op basis van verschillende zaden. Daarna roepen we de functie willekeurig aan, zodat het resultaat van de terugkeer definitief is. Hier is de definitieve niet voor het resultaat een definitieve waarde, maar voor de gegenereerde array. Dat wil zeggen dat het resultaat van terugkeer definitief is ten opzichte van de inroeptijden.

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

    willekeurig Zaad (0);

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

    println(willekeurig (10));

    }

    } [/cceN_cpp]

    Nu gaan we verder met het gebruik van println om een experiment uit te voeren. Na het gebruik van randomSeed, zal het elke keer dat u het programma sluit en het programma opnieuw start, terugkeren naar een reeks met hetzelfde resultaat. De waarde komt één voor één overeen met de reeks. Als u het verwijdert, keert het elke keer terug naar een andere waarde. Waarom heeft het deze instelling? Het is omdat de willekeurige waarde zelf in het programma pseudo-willekeurig is. Het resultaat lijkt willekeurig, maar wordt in werkelijkheid gegenereerd door een vaste en herhaalbare berekeningsmethode. Het is gelijk aan het aanwijzen van een primitieve waarde voor randomSeed, waarna het volgende resultaat wordt berekend op basis van deze seed. Als we het seed echter niet aanwijzen, zal het programma standaard de huidige tijd van het systeem gebruiken om seed te genereren. Daarom is het resultaat van elke operatie anders. Het onderstaande voorbeeld kan u helpen randomSeed beter te begrijpen.

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

    grootte (700, 700);

    achtergrond(0);

    geen slag();

    }

    nietig tekenen(){

    willekeurig Zaad(1);

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

    float randomWidth01 = willekeurig (10, 60);

    ellips (willekeurig (breedte), willekeurig (hoogte), willekeurige breedte01, willekeurige breedte01);

    println(willekeurige breedte01);

    }

    willekeurig Zaad(1);

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

    float randomWidth02 = willekeurig (10, 60);

    ellips (willekeurig (breedte), willekeurig (hoogte), willekeurige breedte02, willekeurige breedte02);

    println(willekeurige breedte02);

    }

    } [/cceN_cpp]

    Probeer de tweede randomSeed(1) te herzien naar randomSeed(0) en vergelijk de uiteindelijke resultaten.

    Tips: In P5 hoeven we alleen de functie noLoop aan het einde van de trekking aan te roepen, zodat we hetzelfde effect kunnen krijgen. Zijn functie is om het programma te beëindigen. Het is heel anders dan de bovenstaande werkingsprincipes in de natuur.

Stap 5: Gebruik voor lus om lijn te tekenen

Nadat we het gebruik van randomSeed onder de knie hebben, kunnen we proberen de tekenfunctie te veranderen. Verander bijvoorbeeld cirkeltekening in lijntekening. Alleen als we een aantal veranderende regels aan het einde van de lijn ontwerpen, kunnen we veel lijnen gebruiken om een uniek patroon te maken.

Codevoorbeeld (5-9):

[cceN_cpp theme="dawn"] void setup(){

grootte (700, 700);

achtergrond(0);

}

nietig tekenen(){

willekeurig Zaad (0);

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

zweven x1 = breedte/2,0;

float x2 = willekeurig (50.0, 650,0);

slag (255, 20);

lijn (x1, 50, x2, 650);

}

} [/cceN_cpp]

Eenvoudig penseel maken

Weer terug naar de for-lus. Bovenstaande voorbeelden zijn niet interactief. Als we het resultaat interessanter willen maken, mogen we niet vergeten om mouseX en mouseY in onze code te combineren.

Codevoorbeeld (5-10):

[cceN_cpp theme="dawn"] void setup(){

grootte (700, 700);

achtergrond(255);

geen slag();

}

nietig tekenen(){

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

vul (0, 30);

float x = mouseX + willekeurig (-50, 50);

zweven y = muisY + willekeurig (-50, 50);

ellips(x, y, 2, 2);

}

} [/cceN_cpp]

Er wordt een penseel met "verstrooiingspunten" gemaakt. Omdat elk intensief mini-ronde punt gebaseerd is op de positie van de muis, kan het beperkte richtingen verplaatsen vanuit de vier richtingen links, rechts, omhoog en omlaag. Dus de uiteindelijke vormspreiding van de borstel is vergelijkbaar met een vierkant.

Codevoorbeeld (5-11):

[cceN_cpp theme="dawn"] void setup(){

grootte (700, 700);

achtergrond(255);

geen slag();

}

nietig tekenen(){

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

float-ratio = mouseX/(float)breedte;

float x = mouseX + willekeurig (-50, 50);

zweven y = muisY + willekeurig (-50, 50);

vul (0, verhouding * 255, 255 * (1 - verhouding), 30);

ellips(x, y, 2, 2);

}

}

[/cceN_cpp]

Als we de waarde van mouseX gebruiken om de vulkleur te beïnvloeden, krijgen we een veel magischer kleurverloop.

Stap 6: Voor lus genest

For-lus kan worden genest. U kunt een for-lus opnieuw in de for-lus schrijven. Wanneer u een tweedimensionale puntenmatrix moet tekenen, kunt u deze methode kiezen.

Codevoorbeeld (5-12):

[cceN_cpp theme="dawn"] void setup(){

grootte (700, 700, P2D);

achtergrond(202, 240, 107);

}

nietig tekenen(){

vul(0);

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

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

zweven x = 150 + ik * 100;

zweven y = 150 + j * 100;

ellips(x, y, 60, 60);

println(i + ":" + j);

}

}

}

[/cceN_cpp]

Om de geneste lus voor de eerste keer te gebruiken, moet je de logische relaties ervan achterhalen. De code-implementatie in het programma is altijd van boven naar beneden. Daarom is de eerste geïmplementeerde absoluut de buitenste lus. Elke keer dat de buitenste lus een keer werkt, zal de interne lus continu werken totdat deze niet meer aan de voorwaarde kan voldoen. Daarna zal het de tweede buitenste lusbewerking starten. Nadat de tweede bewerking is gestart, gaat de interne lus door totdat deze niet aan de voorwaarde kan voldoen. Zo'n herhaling doet het totdat niet aan alle voorwaarden kan worden voldaan en het uit de lus springt.

In de bovenstaande code is het luslichaam in de buitenste lus in totaal 5 keer in werking gesteld, terwijl het luslichaam in de interne lus 25 keer heeft gewerkt. Binnen 25 keer, volgens het verschil van i, j-waarde, kunnen we de horizontale en verticale coördinaat van de cirkel afzonderlijk verzekeren. Ik heb een sectie van print ingesloten, je kunt de gegevensuitvoer observeren en nadenken over de verandering ervan. Met slechts twee geneste lussen kunnen we alle combinaties van i, j-gegevens ervaren.

Tips

For-lus in de tweede laag condenseert meestal met Tab aan het begin. Dit kan de codestructuur duidelijker maken. U moet lokale variabelen in de twee lagen van for-lus een naam geven met verschillende namen. Hiervan zijn "i", "j", "k" de meest gebruikte.

Flexibel gebruik "i", "j"

De twee variabelennaam "i", "j" vertegenwoordigen lokale variabelen van de twee lagen van for-lus. Het onderstaande voorbeeld zal uw begrip voor "i""j" verdiepen. Volgens de verschillende waarden van "i", "j", kunnen we parameters invoeren om de elementen te groeperen.

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

grootte (700, 700);

achtergrond(0);

geen slag();

}

nietig tekenen() {

achtergrond(0);

vullen (250, 233, 77);

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

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

pushMatrix();

vertalen (50 + i * 100, 50 + j * 100);

// Instelling 1

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

// Instelling 2

//vlotterverhouding = i/7,0;

// zweefhoek = sin (millis () / 1000,0 + verhouding * (PI/2)) * PI/2;

// Instelling 3

vlotterverhouding = (i * 7 + j)/49,0;

zweefhoek = sin(millis() / 1000,0 + verhouding * (PI/2)) * PI/2;

roteren (hoek);

rectMode(CENTER);

// Teken afbeelding 1

recht(0, 0, 80, 80);

// Teken afbeelding 2

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

// Teken afbeelding 3

//rect (0, 0, verhouding * 50);

popMatrix();

}

}

} [/cceN_cpp]

Code Uitleg

rectMode(CENTER) kan de tekenmethode van vierkant wijzigen. De oorspronkelijke twee parameters van rect worden gebruikt om de coördinaat van de linker bovenhoek van het vierkant te definiëren. Nadat we deze opdracht hebben gestart, worden deze twee parameters gebruikt om de coördinaat voor het vierkante middelpunt in te stellen. Omdat we hier de patroonrotatie door roteren laten werken, moeten we deze methode gebruiken om het middelpunt naar het oorspronkelijke punt van de coördinaat te trekken.

millis() verwerft de tijd vanaf de start van het programma tot het heden. De eenheid is ms. Deze waarde zal de veranderende snelheid van de uitvoerwaarde van de sin beïnvloeden. Als we millis direct schrijven, is de veranderende schaal te groot. We moeten het dus delen door 1000,0.

In dit gedeelte van de code gebruiken we het commentaarsymbool "//" om verschillende instellingen te verbergen. U kunt effecten verschuiven door te beginnen of te sluiten. Als we bijvoorbeeld zinnen beginnen achter "Instelling 3", moeten we het commentaarsymbool gebruiken om codeblokken achter "Instelling 1" en "Instelling 2" te sluiten. Wat betreft voorbeelden van deze vergelijkbare programmastructuur met verschillende lokale variabelen, kunnen we in dit formaat schrijven. Zo hoeven we niet meerdere technische documenten apart op te slaan. We kunnen deze vaardigheid vaak gebruiken tijdens het oefenen en maken en behouden enkele bevredigende parameterinstellingen.

Daaronder wordt de invloed van de i, j-waarde op het programma voornamelijk weergegeven door het verschuiven van "Instelling 1 (Instelling 2) (Instelling 3)". U kunt de uitvoerresultaten hieronder vergelijken.

Teken afbeelding 1: instelling 1

Teken afbeelding 1: instelling 2

Teken afbeelding 1: instelling 3

Teken afbeelding 2: instelling 1

Teken afbeelding 2: instelling 2

Teken afbeelding 2: instelling 3

In instelling 1 hebben we i en j niet gebruikt om de rotatiehoek van elk element te beïnvloeden. Zo kunnen we zien dat de beweging van elk element hetzelfde is. In instelling 2 hebben we i-waarde en zowel i als j in instelling 3 gebruikt. Ten slotte hebben ze de parameterinvoer van de functie sin door ratio beïnvloed. Dit heeft de periodieke verandering van hoek veranderd. Omdat het daadwerkelijke effect van instelling 2 en instelling 3 niet zo duidelijk is in de geanimeerde afbeeldingen, kunnen we dit zien aan de hand van de volgende schermafbeelding.

Teken Afbeelding 2 (Links: Instelling 2; Rechts: Instelling 3)

Teken Afbeelding 3 (Links: Instelling 2; Rechts: Instelling 3)

In de eerste afbeelding wordt de verhouding gebruikt om de vierkante rotatiehoek te beïnvloeden. Terwijl de tweede afbeelding is bedoeld om de straal van de cirkel rechtstreeks te regelen. We kunnen zien dat het i value-zin heeft gebruikt:

vlotterverhouding = i/7,0;

De verandering van het verticale element is consistent. Omdat de horizontale coördinaat voor het besturen van de afbeelding alleen afhangt van de waarde van i, zullen patronen met dezelfde horizontale coördinaat hetzelfde zijn. En de waarde van verhouding, draaihoek en de straal van de cirkel is ook hetzelfde.

Tegelijkertijd gebruiken we i, j zin:

vlotterverhouding = (i * 7 + j)/49,0;

Het kan "gradiënt" beschrijven. Hier, met de methode van vermenigvuldigen van een factor, heeft het de invloed van rijen en kolommen gecombineerd. Elk element is dus anders.

Stap 7: While-lus

Er is een broer voor for loop. Dat is een while-lus. Wat for loop kan doen, terwijl loop het ook kan. Maar de gebruiksfrequentie van while-lus in creativeCoding is niet hoog als for-lus.

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

int a = 0;

terwijl(a < 10){

println(a);

een ++;

}

} [/cceN_cpp]

De grammaticale structuur van while is gemakkelijker te begrijpen dan voor. We kunnen variabelen maken vóór while-statement. Vul vervolgens een uitdrukking in tussen vierkante haken. Als het is voldaan, voer dan de zinnen in de lus uit. Ten slotte plaatsen we een expressie in de loop-body om de variabelen bij te werken, en terwijl de loop is voltooid. Wat betreft de gegarandeerde lustijden, gebruiken we vaak for-lus. Wat betreft de waarde van een oneindige variabele, raden we u aan om while loop te gebruiken.

Denken:

Probeer allerlei basiselementen te gebruiken om tekenelementen in for loop te vervangen om verschillende penselen te maken.

Combineer met de trigonometrische functie waarnaar in het laatste hoofdstuk is verwezen, probeer de "verstrooiingspunten" -penseel te herzien in een ronde vormpenseel.

Probeer een tweedimensionale dot-matrix te maken met alleen een for-lus.

Volgend hoofdstuk Vooruitblik Net als bij deze cursus zul je merken dat bij elke nieuwe kennis die je leert, de mogelijkheid om te spelen meteen een stuk groter wordt. Programma is een pandora-box. Alles wat u zich kunt voorstellen, kan het voor u doen. Er is dus geen reden waarom we deze taal, die met computers kan communiceren, niet leren. In ons volgende hoofdstuk zullen we nog een procescontroleverklaring voor u introduceren. Het kan de processtroom regelen en meer gecompliceerde en veranderlijke resultaten genereren. Met if-statement kun je gemakkelijk je eigen tekstavonturengames maken! -Laat uw foto draaien (deel één) Interessante programmeerrichtlijnen voor ontwerpers - Laat uw foto draaien (deel twee)

Stap 8: Bron

Dit artikel is afkomstig van:

Als je vragen hebt, kun je contact opnemen met [email protected].