Spisu treści:

Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programowania - instrukcja pętli: 8 kroków
Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programowania - instrukcja pętli: 8 kroków

Wideo: Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programowania - instrukcja pętli: 8 kroków

Wideo: Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programowania - instrukcja pętli: 8 kroków
Wideo: Podstawy programowania w JavaScript w 60 MINUT 2024, Lipiec
Anonim
Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programu - instrukcja pętli
Interesujące wskazówki dotyczące programowania dla projektanta - kontrola procesu programu - instrukcja pętli

Kontrola procesu programu - instrukcja pętli

Z tego rozdziału uzyskasz kontakt z ważną i potężną instrukcją pętli wiedzy.

Zanim przeczytasz ten rozdział, jeśli chcesz narysować 10 000 okręgów w programie, możesz to zrobić tylko straszną metodą. Oznacza to napisanie 10 000 linii kodu elipsy. Ci leniwi projektanci kodu, którzy chcą za wszelką cenę poprawić wydajność, zdecydowanie nie pozwoliliby na to. Tak więc tworzona jest instrukcja pętli. Dzięki temu stwierdzeniu możesz intuicyjnie poczuć potęgę automatyzacji komputerowej.

Krok 1: Dla pętli

Istnieje wiele instrukcji pętli, wśród których najczęściej używa się For Loop. Wszyscy wiemy, że funkcja rysowania działa w sposób ciągły w obiegu. Zacznij od pierwszego zdania na początku, będzie realizował od góry do dołu aż do ostatniego zdania. Po zakończeniu operacji rozpocznie się ponownie od pierwszego zdania. Instrukcja for jest trochę podobna do funkcji rysowania. Kod wewnątrz instrukcji for może być wykonywany wielokrotnie.

Oto jego struktura gramatyczna:

For(wyrażenie 1; wyrażenie 2; wyrażenie 3){

Pętla ciała

}

Oczywiście, zdania w ciele pętli są tym, czego oczekiwaliśmy, że będą wielokrotnie implementowane. Wyrażenie 1 służy do inicjowania i przypisywania pierwszej wartości do zmiennej pętli. Wyrażenie 2 dotyczy warunku pętli. Wyrażenie 3 zaktualizuje wartość zmiennej pętli.

Co to jest zmienna pętli? W rzeczywistości jest to odpowiednik zmiennej lokalnej. Przyjrzyjmy się całemu tekstowi.

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

Pętla ciała

}

Aby zrealizować funkcję pętli, instrukcja for opiera się głównie na zmiennej lokalnej, która zostanie użyta przy zakończeniu pętli. Zmienna lokalna w powyższym przykładzie to i. Wyrażenie 1 zakończyło inicjalizację zmiennej lokalnej. Później, za każdym razem, gdy pętla działa raz, zmienna ta musi zostać zaktualizowana. Wśród powyższych przykładów, i++ w wyrażeniu 3 służy do realizacji funkcji aktualizacji. Dzięki temu zmienna wzrośnie o 1 za każdym razem, gdy zostanie zaktualizowana. W końcu kod w treści pętli nie może zapętlać się w nieskończoność, w przeciwnym razie te ostatnie instrukcje nie mogą zostać wykonane. Dlatego potrzebujemy warunku końcowego. Express 2 jest właśnie dla niego. Tutaj program oceni, czy i jest mniejsze niż 10. Jeśli tak, kontynuuj działanie. Jeśli tak nie jest, wyskocz z pętli.

Dlatego sekwencja operacji instrukcji for jest właśnie taka.

Wyrażenie 1 (Inicjalizacja zmiennej lokalnej)

Wyrażenie 2 (zadowolony, a następnie kontynuuj działanie)

Pętla ciała (pierwszy obieg)

Wyrażenie 3 (aktualizacja)

Wyrażenie 2 (zadowolony, a następnie kontynuuj działanie)

Korpus pętli (drugi obieg)

Wyrażenie 3 (aktualizacja)

Wyrażenie 2 (zadowolony, a następnie kontynuuj działanie)

Korpus pętli (trzeci obieg) …

Wyrażenie 3 (aktualizacja)

Wyrażenie 2 (Niezadowolony, a następnie wyskocz z pętli)

Możesz kilka razy symulować tę sekwencję egzekucji w swojej głowie. Ale nie da się naprawdę zrozumieć kodu bez jednorazowego wpisania go ręką. Kiedy chcemy poznać dziwną koncepcję, możemy wyświetlić wartość w konsoli za pomocą instrukcji println.

Przykład kodu (5-1): void setup(){

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

println ("uruchom");

}

}

Możesz policzyć liczbę wyników uruchomienia w konsoli. Tutaj jest dokładnie 10. To mówi ci, ile razy kod w ciele pętli został wykonany. Jednak nadal nie możemy wykryć, jakie zmiany faktycznie zaszły w pętli. Możemy więc spróbować zmienić znak "wbiegnij na zmienną "i" i zobaczyć, co się stanie.

Przykład kodu (5-2): void setup(){

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

println (i);

}

}

Teraz widzimy, że wartość i w ciele pętli stale rośnie. Później możemy użyć tej wartości, aby zrozumieć bieżący proces pętli.

W przykładzie kodu (5-2) wartość i jest zmieniana z 0 na 9. W porównaniu z rzeczywistymi czasami pętli, wydaje się, że zawsze jest o 1 mniej. Jeśli nie przyzwyczaisz się do tego, wyrażenie w nawiasie instrukcji for może być zapisane w następujący sposób:

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

Tak więc i jest słusznie odpowiadają czasom pętli. Znaczenie „<=” jest mniejsze i równe. Więc kiedy ja równa się 10, to nadal będzie spełniał warunek. W związku z tym będzie działać jeszcze raz w porównaniu z zapisem do i < 10. Chociaż zaczyna się od 1, czasy pętli nadal wynoszą 10. Oczywiście, jeśli nic specjalnego nie jest potrzebne, sugeruję przyjęcie metody zapisu w przykład na początku. Później wprowadzimy wektor lub tablicę, z których oba uzyskują swój element za pomocą indeksu dolnego. Wszystkie domyślne indeksy dolne zaczynają się od 0. Definiowanie wartości początkowej na 0 jest stosunkowo powszechną praktyką.

W powyższym przykładzie, jeśli napiszemy, że i jest powyżej 0, program ulegnie awarii. Ponieważ zmienna stale rośnie, nigdy nie spełni tego warunku. To tak, jakby nigdy nie można go zatrzymać, aby program działał w nieskończonej pętli.

Zmienne lokalne w instrukcji for mogą nie tylko deklarować typy plastikowe, ale także deklarować zmienne w typach zmiennoprzecinkowych. Na przykład można go zapisać jako (zmiennoprzecinkowa i = 0; i <10; i + = 0,02).

Krok 2: Użyj for Loop do rozwiązywania problemów matematycznych

Czy pamiętasz jeszcze historię matematyka Gaussa z dzieciństwa? W tym czasie Guass miał 10 lat. Jego nauczyciel chciał przydzielić zadanie w klasie, a pytanie brzmiało:

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

Jeśli kalkulujesz własnymi rękami, zajmie Ci to dużo czasu. Ale wydaje się, że Guass wymyślił już metodę sumowania ciągu arytmetycznego. Więc zaraz po tym, jak zadano pytanie, z łatwością wypowiedział odpowiedź, co bardzo zaskoczyło jego nauczyciela.

Teraz możemy jeszcze nie pamiętać, co jest sumą ciągu arytmetycznego, ale możemy uzyskać odpowiedź w prymitywny i brutalny sposób. I to jest dla pętli. Ponieważ liczenie komputerów to tylko bułka z masłem, musimy opisać pytanie w języku, który może być rozpoznany przez komputer, wtedy możemy łatwo uzyskać odpowiedź.

Przykład kodu (5-3):

pusta konfiguracja (){

int odpowiedź = 0;

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

odpowiedz += ja;

}

println(odpowiedź);

}

Uważam, że uzyskany wynik jest taki sam, jak odpowiedź, którą podał Guass: jest to 5050!

Wskazówki: Nazwę zmiennych lokalnych w pętli for można dowolnie zmieniać pod warunkiem przestrzegania zasad nazewnictwa zmiennych. Możesz tak napisać (int k = 1;k <= 100;k++). Jeśli nie zaszły żadne szczególne warunki, domyślnie jako nazwę zmiennej przyjmuje się i.

Krok 3: Do rysowania pętli

Po serii pozornie nudnej pościeli, wreszcie możemy przejść do ciekawszego działu. To jest użycie pętli for do rysowania obrazków. Możemy teraz odłożyć na bok te żmudne obliczenia matematyczne. My, projektanci, jesteśmy bardziej wyczuleni na grafikę.

Użyj dla pętli, aby narysować szyk okręgów

Kiedy chcemy użyć pętli for do reprezentowania grupy powtarzających się elementów, musimy wcześniej upewnić się, że te elementy są powiązane liczbowo, a następnie możemy użyć pętli for, aby wygodnie to zrealizować, zamiast wykonywać masową pracę z powtarzaniem. Załóżmy, że chcemy narysować rząd okręgu równomiernie rozłożonego w kierunku poziomym. Jego współrzędna wirtualna pozostaje niezmieniona, natomiast zmienia się współrzędna pozioma. A od lewej do prawej współrzędna pozioma stale rośnie, a rosnąca odległość jest taka sama. W tym momencie możemy użyć i w pętli for, aby uzyskać współrzędną poziomą każdego okręgu.

Przykład kodu(5-4): void setup(){

rozmiar (700, 700);

tło (83, 51, 194);

noStroke();

}

nieważne rysowanie () {

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

elipsa (50,0 + i * 100,0, wysokość/2,0, 80,0, 80,0);

}

}

50 oznacza pozycję początkową pierwszego okręgu po lewej stronie. 100 w i * 100 reprezentuje rosnącą odległość.

Krok 4: Użyj for Loop, aby narysować losowy okrągły punkt

Powyższa pozycja graficzna jest przewidywalna. To zminimalizuje duże zainteresowanie. Możemy użyć funkcji random, o której wspominaliśmy w poprzednim rozdziale i spróbować zapisać ją w funkcji rysowania.

Przykład kodu (5-5):

pusta konfiguracja (){

rozmiar (700, 700);

tło(0);

noStroke();

}

nieważne rysowanie () {

tło(0);

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

float randomWidth = losowo (60.0);

ellipse(losowy(szerokość), losowy(wysokość), randomWidth, randomWidth);

}

}

Tutaj powodem, dla którego pozycja koła ciągle miga, jest to, że za każdym razem, gdy funkcja losowa działa raz, wynik jest losowy. Ponieważ funkcja rysowania jest domyślnie uruchamiana 60 klatek na sekundę, więc każde 10 okręgów narysowanych na sekundę zmieni swoją pozycję 60 razy. Ten szybki błysk sprawia, że obraz wydaje się mieć więcej niż 10 okręgów. Zmiana prostej wartości w programie przyniesie zupełnie inny efekt. Możemy zmienić czasy pętli, zmieniając warunek terminala. Stan terminala na poniższym obrazku to i < 100

  1. Oto efekt, gdy warunek końcowy jest i < 1000:
  2. RandomSeed
  3. Jeśli nie chcę, aby pozycja okręgu była generowana losowo, podobnie jak jego błysk, co mogę zrobić? Jedną z metod jest budowanie i przechowywanie niezależnych zmiennych dla każdego okręgu i inicjowanie tych zmiennych w konfiguracji. Przypisz tym zmiennym losową wartość. Tak więc, używając funkcji rysowania w draw, wywołaliśmy wartość przechowywaną w zmiennych. Nie zmieni się w żadnym momencie. Aby narysować 10 okręgów, możemy po prostu użyć tej metody. Ale co, jeśli chcemy narysować 1000 kół lub 10 000 kół? Będzie to dość kłopotliwe, jeśli użyjemy tej tradycyjnej metody do zbudowania tych zmiennych i ich nazwania. Nie musimy uczyć się nowej metody budowania zmiennych. Oto elastyczna metoda, która może nam pomóc osiągnąć ten cel. To znaczy użyć randomSeed. Przyjrzyjmy się teraz jego efektowi po użyciu. Przykład kodu (5-6):[cceN_cpp theme="dawn"] void setup(){ size(700, 700); tło(0);brak pociągnięcia();}
  4. nieważne rysowanie () {

    tło(0);

    randomSeed(1);

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

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

    ellipse(losowy(szerokość), losowy(wysokość), randomWidth, randomWidth);

    }

    } [/cceN_cpp]

    W porównaniu do poprzedniego kodu, nie ma żadnych zmian poza zmianą zakresu promienia okręgu z 10 do ponad 30 za pomocą zdania ofSeedRandom only. Po dodaniu tego zdania grafika wydaje się statyczna.

    Wywołaj format:

    losowe Nasienie(a);

    Wśród tego formatu ustawienie a to seed. Musisz wpisać do niego liczbę całkowitą (wpisz wartość zmiennoprzecinkową w P5, nie pójdzie źle, ale potraktuj ją jako liczbę całkowitą). Funkcja randomSeed polega na ustawieniu ziarna na wartość losową. Następnie wygeneruje inną losową tablicę według różnych nasion. Następnie wywołujemy funkcję random, aby wynik zwrotu był określony. Tutaj nie jest określone, że wynik jest określoną wartością, ale dla wygenerowanej tablicy. To znaczy, że wynik powrotu jest określony w stosunku do czasów przywołania.

    Przykład kodu (5-7):[cceN_cpp theme="dawn"] void setup(){

    randomSeed(0);

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

    println(losowo(10));

    }

    } [/cceN_cpp]

    Teraz używamy println do przeprowadzenia eksperymentu. Po użyciu randomSeed, za każdym razem, gdy zamkniesz program i ponownie go uruchomisz, powróci do ciągu o tym samym wyniku. Wartość będzie odpowiadać sekwencji jeden po drugim. Jeśli go usuniesz, za każdym razem powróci do innej wartości. Dlaczego ma to ustawienie? To dlatego, że sama wartość losowa w programie jest pseudolosowa. Wynik wydaje się przypadkowy, ale w rzeczywistości jest generowany przez stałą i powtarzalną metodę obliczania. Jest to równoważne wyznaczeniu pierwotnej wartości dla randomSeed, wówczas następujący wynik zostanie obliczony zgodnie z tym ziarnem. Jeśli jednak nie wyznaczymy seeda, program domyślnie użyje aktualnego czasu systemu do wygenerowania seeda. Dlatego wynik każdej operacji jest inny. Poniższy przykład może pomóc Ci lepiej zrozumieć randomSeed.

    Przykładowy kod (5-8):[cceN_cpp theme="dawn"] void setup(){

    rozmiar (700, 700);

    tło(0);

    noStroke();

    }

    nieważne rysowanie () {

    randomSeed(1);

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

    float randomWidth01 = random(10, 60);

    ellipse(losowy(szerokość), losowy(wysokość), randomWidth01, randomWidth01);

    println(losowaszerokość01);

    }

    randomSeed(1);

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

    float randomWidth02 = random(10, 60);

    ellipse(losowe(szerokość), random(wysokość), randomWidth02, randomWidth02);

    println(losowa szerokość02);

    }

    } [/cceN_cpp]

    Spróbuj poprawić drugi randomSeed(1) do randomSeed(0) i porównaj wyniki końcowe.

    Wskazówki: W P5 wystarczy wywołać funkcję noLoop na końcu rysowania, aby uzyskać ten sam efekt. Jego funkcją jest zakończenie programu. Z natury ma to zupełnie inny charakter niż powyższe zasady działania.

Krok 5: Użyj dla pętli, aby narysować linię

Po opanowaniu obsługi randomSeed możemy spróbować zmienić funkcję rysowania. Na przykład zmień rysunek okręgu na rysunek linii. Tylko jeśli zaprojektujemy zmieniające się przepisy do końca linii, możemy wykorzystać wiele splecionych linii, aby stworzyć niepowtarzalny wzór.

Przykład kodu(5-9):

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

rozmiar (700, 700);

tło(0);

}

nieważne rysowanie () {

randomSeed(0);

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

pływak x1 = szerokość/2,0;

zmiennoprzecinkowe x2 = losowe (50,0, 650,0);

udar (255, 20);

linia(x1, 50, x2, 650);

}

} [/cceN_cpp]

Utwórz prosty pędzel

Powrót do pętli for ponownie. Powyższe przykłady nie są interaktywne. Jeśli chcemy, aby wynik stał się ciekawszy, nie możemy zapomnieć o połączeniu mouseX i mouseY w naszym kodzie.

Przykład kodu (5-10):

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

rozmiar (700, 700);

tło (255);

noStroke();

}

nieważne rysowanie () {

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

wypełnienie (0, 30);

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

float y = mouseY + random(-50, 50);

elipsa(x, y, 2, 2);

}

} [/cceN_cpp]

Powstaje pędzel z „punktami rozproszenia”. Ponieważ każdy intensywny mini-okrągły punkt jest oparty na pozycji myszy, może poruszać się w ograniczonych kierunkach z czterech kierunków: w lewo, w prawo, w górę iw dół. Tak więc ostateczny kształt pędzla jest podobny do kwadratu.

Przykład kodu (5-11):

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

rozmiar (700, 700);

tło (255);

noStroke();

}

nieważne rysowanie () {

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

float ratio = mouseX/(float)width;

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

float y = mouseY + random(-50, 50);

wypełnienie (0, współczynnik * 255, 255 * (1 - współczynnik), 30);

elipsa(x, y, 2, 2);

}

}

[/cceN_cpp]

Jeśli użyjemy wartości mouseX do wpłynięcia na kolor wypełnienia, otrzymamy znacznie bardziej magiczny gradient kolorów.

Krok 6: Dla zagnieżdżonej pętli

Pętla For może być zagnieżdżona. Możesz ponownie napisać pętlę for do pętli for. Jeśli chcesz narysować dwuwymiarową macierz punktową, możesz wybrać tę metodę.

Przykład kodu (5-12):

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

rozmiar (700, 700, P2D);

tło (202, 240, 107);

}

nieważne rysowanie () {

wypełnienie(0);

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

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

zmiennoprzecinkowa x = 150 + i * 100;

pływak y = 150 + j * 100;

elipsa (x, y, 60, 60);

println(i + ":" + j);

}

}

}

[/cceN_cpp]

Aby po raz pierwszy użyć zagnieżdżonej pętli, musisz ustalić jej logiczne relacje. Implementacja kodu w programie jest zawsze od góry do dołu. Dlatego pierwsza zaimplementowana pętla jest zdecydowanie najbardziej zewnętrzną pętlą. Za każdym razem, gdy pętla zewnętrzna działa raz, pętla wewnętrzna będzie działać nieprzerwanie, dopóki nie będzie już w stanie spełnić warunku. Następnie rozpocznie drugą operację zewnętrznej pętli. Po rozpoczęciu drugiej operacji pętla wewnętrzna będzie działać na przyrządzie, dopóki nie będzie mogła spełnić warunku. Takie powtarzanie robi, aż wszystkie warunki nie mogą być spełnione i wyskakuje z pętli.

W powyższym kodzie korpus pętli w pętli zewnętrznej zadziałał w sumie 5 razy, podczas gdy korpus pętli w pętli wewnętrznej zadziałał 25 razy. W ciągu 25 razy, zgodnie z różnicą wartości i, j, możemy osobno zapewnić współrzędną poziomą i pionową okręgu. Osadziłem sekcję print, możesz obserwować dane wyjściowe i myśleć o ich zmianie. Tylko przy dwóch zagnieżdżonych pętlach możemy doświadczyć wszystkich kombinacji danych i, j.

Porady

Pętla For w drugiej warstwie zwykle kondensuje się z Tab na początku. Może to sprawić, że struktura kodu będzie bardziej przejrzysta. Musisz nazwać zmienne lokalne w dwóch warstwach pętli for różnymi nazwami. Wśród nich najczęściej używane są „i”, „j”, „k”.

Elastyczne użycie „i”, „j”

Dwie zmienne nazwy „i”, „j” reprezentują zmienne lokalne dwóch warstw pętli for. Poniższy przykład pogłębi twoje zrozumienie dla "i""j". Zgodnie z różną wartością „i”, „j” możemy wprowadzić parametry, aby pogrupować elementy.

Przykład kodu (5-13):[cceN_cpp theme="dawn"] void setup() {

rozmiar (700, 700);

tło(0);

noStroke();

}

nieważne rysowanie () {

tło(0);

wypełnienie (250, 233, 77);

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

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

pushMatrix();

przetłumacz(50 + i * 100, 50 + j * 100);

// Ustawienie 1

//kąt pływania = sin(millis() / 1000,0) * PI/2;

// Ustawienie 2

//współczynnik zmienności = i/7,0;

//kąt zmiennoprzecinkowy = sin(millis()/1000.0 + stosunek * (PI/2)) * PI/2;

// Ustawienie 3

współczynnik pływalności = (i * 7 + j)/49,0;

kąt zmiennoprzecinkowy = sin(millis()/1000,0 + stosunek * (PI/2)) * PI/2;

obróć(kąt);

RektMode(ŚRODEK);

// Narysuj obrazek 1

prostokąt (0, 0, 80, 80);

// Narysuj obrazek 2

// prostokąt (0, 0, 100, 20);

// Narysuj obrazek 3

//prosto (0, 0, stosunek * 50);

popMatrix();

}

}

} [/cceN_cpp]

Kod Wyjaśnienie

rectMode(CENTER) może zmienić metodę rysowania kwadratu. Pierwotny poprzedni dwa parametry rect są używane do określenia współrzędnej lewego górnego rogu kwadratu. Po uruchomieniu tego polecenia te dwa parametry zostaną użyte do ustawienia współrzędnych punktu środkowego kwadratu. Ponieważ tutaj operujemy rotacją wzorca poprzez obrót, więc musimy użyć tej metody, aby narysować punkt środkowy do pierwotnego punktu współrzędnej.

millis() pobiera czas od rozpoczęcia programu do chwili obecnej. Jednostką jest ms. Wartość ta będzie miała wpływ na prędkość zmiany wartości wyjściowej sin. Jeśli zapiszemy milis bezpośrednio, skala zmiany jest zbyt duża. Dlatego musimy go podzielić przez 1000,0.

W tej sekcji kodu używamy symbolu komentarza "//", aby ukryć kilka ustawień. Możesz przesuwać efekty, rozpoczynając lub zamykając. Na przykład, jeśli zaczynamy zdania za „Ustawieniem 3”, musimy użyć symbolu komentarza, aby zamknąć bloki kodu za „Ustawieniem 1” i „Ustawieniem 2”. Jeśli chodzi o przykłady tej podobnej struktury programu z różnymi zmiennymi lokalnymi, możemy pisać w tym formacie. Dzięki temu nie musimy oddzielnie przechowywać kilku dokumentów inżynierskich. Możemy często używać tej umiejętności podczas ćwiczeń i tworzenia, zachowując satysfakcjonujące ustawienia parametrów.

Wśród nich wpływ wartości i, j na program jest głównie reprezentowany przez przesunięcie „Ustawienie 1 (Ustawienie 2) (Ustawienie 3)”. Możesz porównać wyniki wyjściowe poniżej.

Narysuj obrazek 1: Ustawienie 1

Narysuj obrazek 1: Ustawienie 2

Narysuj obrazek 1: Ustawienie 3

Narysuj obrazek 2: Ustawienie 1

Narysuj obrazek 2: Ustawienie 2

Narysuj obrazek 2: Ustawienie 3

W ustawieniu 1 nie używaliśmy i i j do wpływania na kąt obrotu każdego elementu. Widzimy więc, że ruch każdego elementu jest taki sam. Podczas gdy w ustawieniu 2 użyliśmy wartości i oraz i i j w ustawieniu 3. W końcu wpłynęły one na wprowadzanie parametrów funkcji sin through ratio. Zmieniło to okresową zmianę kąta. Ponieważ rzeczywisty efekt ustawienia 2 i ustawienia 3 nie jest tak oczywisty na animowanej grafice, możemy to zaobserwować na poniższym zrzucie ekranu.

Narysuj obrazek 2 (po lewej: ustawienie 2; po prawej: ustawienie 3)

Narysuj zdjęcie 3 (po lewej: ustawienie 2; po prawej: ustawienie 3)

Na pierwszym zdjęciu współczynnik służy do wpływania na kąt obrotu kwadratu. Podczas gdy drugi obraz służy do bezpośredniej kontroli promienia okręgu. Widzimy, że użył zdania i value:

współczynnik pływalności = i/7,0;

Jego zmiana elementu pionowego jest stała. Ponieważ współrzędna pozioma do sterowania obrazem zależy tylko od wartości i, więc wzorce o tej samej współrzędnej poziomej będą takie same. A wartość współczynnika, kąta obrotu i promienia okręgu też jest taka sama.

Jednocześnie używamy zdania i, j:

współczynnik pływalności = (i * 7 + j)/49,0;

Potrafi opisać „gradient”. Tutaj, metodą mnożenia przez współczynnik, połączył wpływ wierszy i kolumn. Więc każdy element jest inny.

Krok 7: Podczas gdy pętla

Jest brat dla pętli for. To jest pętla while. Co może zrobić pętla for, podczas gdy pętla też. Ale częstotliwość używania pętli while w kreatywnym kodowaniu nie jest wysoka, jak w pętli for.

Przykład kodu (5-14):[cceN_cpp theme="dawn"] void setup(){

int a = 0;

podczas (<10){

drukujn(a);

a++;

}

} [/cceN_cpp]

Łatwiej zrozumieć strukturę gramatyczną while niż for. Możemy tworzyć zmienne przed instrukcją while. Następnie wypełnij wyrażenie w nawiasie kwadratowym. Kiedy jest spełniony, operuj zdaniami w ciele pętli. Na koniec umieszczamy wyrażenie w ciele pętli, aby zaktualizować zmienne, a następnie, gdy pętla jest zakończona. Jeśli chodzi o gwarantowane czasy pętli, często używamy for loop. Jeśli chodzi o nieskończoną wartość zmiennej, zalecamy użycie while loop.

Myśleć:

Spróbuj użyć wszelkiego rodzaju podstawowych elementów, aby zastąpić elementy rysunku w pętli for, tworząc różne pędzle.

W połączeniu z funkcją trygonometryczną, o której mowa w poprzednim rozdziale, spróbuj zmienić pędzel "punktów rozproszenia" na pędzel o okrągłym kształcie.

Spróbuj stworzyć dwuwymiarową macierz punktową tylko z pętlą for.

Następny rozdział Zapowiedź Podobnie jak w przypadku tego kursu, znajdziesz każdą nową wiedzę, której się nauczysz, możliwość grania od razu znacznie wzrośnie. Program jest pudełkiem pandory. Wszystko, co możesz sobie wyobrazić, może to zrobić za Ciebie. Nie ma więc powodu, abyśmy nie uczyli się tego języka, który potrafi komunikować się z komputerami. W następnym rozdziale przedstawimy Państwu kolejną instrukcję kontroli procesu if. Może kontrolować przebieg procesu i generować bardziej skomplikowane i zmienne wyniki. Za pomocą instrukcji if możesz z łatwością tworzyć własne gry przygodowe z tekstem!Ten artykuł pochodzi od projektanta Wenzy. Relative Readings:Interesting Programming Guidance for Designer--Processing Initial TouchInteresting Programming Guidance for Designer--Stwórz swój pierwszy program przetwarzaniaCiekawe wskazówki dotyczące programowania dla projektantów – Uruchom swoje zdjęcie (część pierwsza) Ciekawe wskazówki dotyczące programowania dla projektanta – Uruchom swoje zdjęcie (część druga)

Krok 8: Źródło

Ten artykuł pochodzi z:

Jeśli masz jakieś pytania, możesz skontaktować się z: [email protected].

Zalecana: