Begin Processing - de temperatuur Visualizer (2 / 7 stap)

Stap 2: Animatie 101


De Flip-book analogie:

Herinner me de olden dagen, wanneer mensen gebruikt om een stapel papier en trekken een aantal stokcijfers, één op elke pagina, elk cijfer is iets anders dan de laatste? Daarna, wanneer je omgedraaid langs alle pagina's, gemaakt het de illusie van beweging.

Nou, werkt verwerking van iets dergelijks. In de loop van de oneindige draw(), kan elke iteratie of elke pass door de lus worden beschouwd als een enkele pagina in de metaforische flip-boek. Tot nu toe zien we niet iets verplaatsen omdat we hield het tekenen van de dezelfde vormen in alle pagina's. Dus, hoe kunnen we dat wijzigen? We wijzigen incrementeel sommige aspecten van de schets op elke iteratie:

int x = 20;

VOID Setup {}

size(400,400);

Background(255);

Smooth();

}

VOID draw() {}

noStroke();

Fill(140);

Ellipse(x,256,40,40);

x = x + 1; de stapsgewijze wijziging

}

Zie het resultaat boven (eerste afbeelding).

Nou, in ieder geval iets in beweging is. Voordat we erachter te komen waarom de cirkel een spoor laat als het beweegt, let's focus op wat de oorzaak van de beweging. We een integer-variabele 'x' verklaard, en het doorgegeven aan ellipse() als de x-positie. Vervolgens, aan het eind van de lus draw() verhoogd we de waarde van x met een. Dit betekent, voor elke pagina (of iteratie), het midden van de cirkel zal worden van 1 pixel uit de buurt van de x-as, en dus creëren van de illusie van beweging, net als in vroeger dagen!

Nu, voor de trail - bericht dat we de functie hebt aangeroepen background() in Setup, wat betekent dat het slechts één keer wordt uitgevoerd. Vandaar, de background() nooit wordt vernieuwd, en we zien een geschiedenis van de locaties die de cirkel reist. Verplaatsen van de background() aan het begin van de lus draw() is dit opgelost. Probeer het! (Zie tweede afbeelding hierboven ter illustratie).

Of background() in Setup of draw() zal afhangen van het soort schets die u probeert te produceren.

Ik laat het aan de lezer om erachter te komen waarom ik verklaard de variabele x buiten zowel Setup en draw().

Cirkel variatie 1:

Aangezien we de basisprincipes van animatie ging, laten we onze kring een beetje meer interessant - wat als we wilden onze kring te stoppen in het midden van het scherm en niet weg te lopen of uit het zicht krijgen?

Een manier om dit te doen is het gebruik van voorwaardelijke instructies (indien anders verklaringen) te beperken van de cirkel gaan langs de center. Maar, gewoon voor de lol, laten we proberen de volgende manier:

int x = 20;

VOID Setup {}

size(400,400);

Smooth();

}

VOID draw() {}

Background(255);

noStroke();

Fill(140);

Ellipse(x,256,40,40);

x = x + 1; de stapsgewijze wijziging

x = constrain(x,0,width/2); de functie beperken

}

De cirkel gehoorzaam stopt in het midden, recht?

Invoering, de constrain()-functie:

beperken (variabele, lagere drempel, hogere drempel) - deze functie zorgt ervoor dat de waarde die deel uitmaakt van het "variabele" niet, op geen enkele manier, krijgen lager dan "lagere drempel", of hoger dan de "hogere drempel".

In de bovenstaande code, met behulp van constrain(), we ervoor gezorgd dat de cirkel de x-positie niet hoger is dan het gegeven bereik (0 tot de helft van de breedte, ergo, het centrum). De constrain()-functie komt van pas in vele andere situaties, zoals het beperken van de helderheid van een licht voor een installatie, of beperken van de sensor-waardes binnen een bepaald bereik.

Cirkel variatie 2 (Jiggling cirkel):

Een cirkel te bewegen over het scherm was vrij zoet aanvankelijk. Echter, want nu hebben we enkele handige tools onder onze riem, laten we proberen iets een beetje meer spannend - maken de cirkel schudden!

Kunnen we de cirkel lijkt alsof het wordt jiggling doordat voortdurend het verplaatsen van één pixel naar links of naar rechts of omhoog of omlaag op een willekeurige wijze (bijvoorbeeld, omhoog, omlaag, omlaag, links, links, rechts, rechts, rechts... en zo verder). Hoe selecteren we willekeurig een richting? Laten we het weten:

float x = 200;

float y = 200;

VOID Setup {}

size(400,400);

Smooth();

}

VOID draw() {}

Background(255);

noStroke();

Fill(140);

Ellipse(x,y,80,80);

x = x + random(-1,1);

y = y + random(-1,1);

}

willekeurige (onderwaarde, bovenste waarde) - deze ingebouwde functie genereert een willekeurig getal binnen het bereik aangeboden.

Houd er rekening mee dat de random-functie genereert floating point getallen, niet de gehele getallen. Dit is de reden waarom we dat niet opslaan in int., we moesten veranderen de gegevenstypen van de x en y variabelen uit "int" te "zweven", sinds het toevoegen van een geheel getal aan een float levert uiteindelijk een float

Vandaar, door toevoeging van een aantal willekeurig aan zowel de x- en y-coördinaten van de cirkel aan elke iteratie van de lus draw(), we erin geslaagd het schudden. Als u wilt dat de cirkel om sneller te schudden, het bereik groter maken, zoals van -10 tot + 10 bijvoorbeeld.

Gerelateerde Artikelen

Realtime temperatuursensor en Dashboard

Realtime temperatuursensor en Dashboard

Microcontrollers worden steeds goedkoper, krachtiger en meer flexibel. Nieuwe modules en sensoren blijven maken van de nieuwe use-cases, en het Internet van dingen blijft omhoogschieten.Buiten gewoon verzamelen of gegevens opsporen, wij willen iets d
PHYSIC achter sky lantaarns

PHYSIC achter sky lantaarns

Hallo iedereen,in dit instructable zal ik het beginsel van vlucht luchtballon (bekend als sky lantaarns) uitleggen. Ik had hete lucht ballonnen voor schoolproject, dus ik dacht dat het aan andere mensen zien hoe hete lucht ballonnen werkt geïnteresse
FPGA Tic Tac Toe

FPGA Tic Tac Toe

"Tic Tac Toe? Wat is dat? Ik heb nog nooit gehoord daarvan."-Niemand ooitDoor Ryan Frawley en Derek NguyenDeze gids zal u tonen hoe maak je een werkende Tic Tac Toe game in VHDL op een Nexys 2 FPGA-board. Deze tutorial werd gedaan voor een deel
FPGA-vergrendelingsbeheerproject LED

FPGA-vergrendelingsbeheerproject LED

Voor onze laatste project in Digital Design op Cal Poly, waren wij belast met het maken van een project dat natuurlijke hulpbronnen met behulp van een FPGA (veld programmable gate array) aan boord bewaard.Ons project is een simulatie van een kamer wa
Ugly Drum Smoker - Aumador verticale

Ugly Drum Smoker - Aumador verticale

voor enige tijd die ik wilde maken van een roker en na zoeken op Internet ik precies wat ik nodig had ontdekte, een verticale roker gemaakt van een 55 gallon drum, ook wel "Ugly Drum Smoker" UDS.Blijkbaar is het ontwerp van dit soort rokers is h
Ultrasone afstand Sensor Visualizer W / Processing

Ultrasone afstand Sensor Visualizer W / Processing

Dit project maakt gebruik van verwerken om gegevens uit een ultrasone afstandsmeter op een arduino board en ingang naar variabelen in een schets.Stap 1: Uw hardware instellenu moet:Ultrasone afstandsmeterArduino boarddradendraad verbinden met uw meet
Fish Tank temperatuur realtime Visualizer

Fish Tank temperatuur realtime Visualizer

Hallo Instructables!Ik wilde altijd al een manier om gemakkelijk het controleren van de temperatuur van het water in mijn aquarium.Met behulp van 2-3 LEDs voor laag/normale/hoog temperatuur te saai voor mij, lijkt dus ik besloot om een RGB LED strip
Weerstation Arduino en Processing

Weerstation Arduino en Processing

bouwen van een weerstation thuis of mobiel en grafiek van de gegevens in real time op uw computer. De grafiek kaarten uit windsnelheid, druk, temperatuur, en windrichting voor 10 minuten dan wordt de afbeelding opgeslagen als een JPEG-bestand en opni
Interactieve glijden Visualizer

Interactieve glijden Visualizer

Dit project is een interactieve glijdende visualizer tampon. Het is een instrument dat kan worden gebruikt om te bladeren door middel van tijd of ruimte.Demonstratievideo:Wij gebruikten het visualiseren van een 3-dimensionale cadaver afbeelding set e
LED muziek Visualizer met Zybo bestuur

LED muziek Visualizer met Zybo bestuur

Deze tutorial beschrijft hoe maak je een LED muziek Visualizer met behulp van het Zybo Zynq 7000 ontwikkel bord van Xilinx. De Zybo is vrij ontzagwekkend, want het heeft zowel een FPGA en een bewerker van het wapen op het bord. Vanwege dit, kunnen aa
De 600W Wake-Up Light met temperatuur Logger

De 600W Wake-Up Light met temperatuur Logger

Dit hier is een zeer geavanceerde 24u temperatuur logger, die de temperatuur elke 15 seconden registreert en dan het gemiddelden over 1 min en 12mins. De waarde 12min gemiddeld wordt uitgezet op de tijdlijn op een OLED scherm van 128 x 64. Het gemidd
Digitale vochtigheids- en temperatuur-Monitor

Digitale vochtigheids- en temperatuur-Monitor

Hallo iedereenZorgen voor goede indoor vochtigheid heeft belangrijke huid, allergeen en andere voordelen voor de gezondheid door remming van de groei van bacteriën, virussen, schimmels en enz. Deze digitale temperatuur en vochtigheid Monitor kunt u c
ATTiny85 Mono temperatuur Monitor

ATTiny85 Mono temperatuur Monitor

Ik graag doen elektronica als een hobby en een mooie werkruimte die ik heb van een afgedankte PC gemaakt hebben. Het bevat een solderen houder en soldeerbout (rechter bovenhoek van de afbeelding van de werkruimte). Het gebeurt dat ik heb een handige
Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Programmering ESP8266 ESP-12E NodeMCU v1.0 met Arduino IDE in draadloze temperatuur logger

Terug in eind 2014 en begin 2015, uw echt kwamdeze handige WiFi Chip ESP8266 (de ESP-01) en moeten vechten onder de inconsistente documentatie uit verschillende bronnen. Vooralsnog uitloper gedocumenteerd hij zijn frustraties (bevindingen) als een in