Börjar bearbetning - temperatur bildeffekter (2 / 7 steg)

Steg 2: Animation 101



Flip-book analogi:

Minns förr, när folk brukade ta en bunt papper och dra stick-siffror, en på varje sida, varje siffra är något annorlunda än den förra? Efteråt, när du bläddrade förbi alla sidor, det skapade illusionen av rörelse.

Tja, fungerar bearbetning något sådär. I en oändlig draw() slinga, kan varje iteration eller varje passera genom öglan betraktas som en enda sida i den metaforiska flip-bok. Hittills har ser vi inte något flytta eftersom vi höll ritning samma former i alla sidor. Så, hur ändrar vi det? Vi ändrar stegvis någon aspekt av skiss på varje iteration:

int x = 20;

void setup() {

size(400,400);

Background(255);

Smooth();

}

void draw() {

noStroke();

Fill(140);

Ellipse(x,256,40,40);

x = x + 1. den stegvisa ändringen

}

Se resultatet ovan (första bilden).

Tja, är åtminstone något rörliga. Innan vi lista ut varför cirkla lämnar ett spår när den rör sig, låt oss fokusera på vad som orsakar rörelsen. Vi förklarade en heltalsvariabel "x", och skickas det till ellipse() som den x-position. Då, i slutet av draw() slingan, vi ökas värdet på x av en. Detta innebär för varje sida (eller iteration), mitten av cirkeln kommer vara 1 pixel från x-axeln och således att skapa en illusion av rörelse, precis som förr i tiden!

Nu för trail - märka att vi anropas funktionen background() i setup(), vilket innebär att det kommer att köras endast en gång. Därför background() aldrig får uppdateras, och vi ser en historia av platser cirkla reser. Flyttar till background() i början av slingan draw() löser detta. Prova det! (se andra bilden ovan för illustration).

Om du vill placera background() i setup() eller i draw() beror på vilken typ av skiss du försöker producera.

Jag lämnar det till läsaren att räkna ut varför jag deklareras variabeln x utanför både setup() och draw().

Cirkel Variation 1:


Eftersom vi fått grunderna i animation, låt oss göra vår krets lite mer intressant - vad händer om vi ville ha vår krets att stoppa i mitten av skärmen och inte springa iväg eller att komma utom synhåll?

Ett sätt att göra detta är att använda villkorssatser (if, else-satser) för att begränsa cirkeln från att gå förbi centrum. Men, bara för skojs skull, låt oss försöka det på följande sätt:

int x = 20;

void setup() {

size(400,400);

Smooth();

}

void draw() {

Background(255);

noStroke();

Fill(140);

Ellipse(x,256,40,40);

x = x + 1. den stegvisa ändringen

x = constrain(x,0,width/2); begränsa funktionen

}

Cirkeln slutar lydigt på mitten, höger?

Att införa, funktionen constrain():

Bibehåll (variabel, lägre tröskel, högre tröskel) - denna funktion säkerställer att värdet som finns i "variabeln" inte på något sätt, få lägre än "lägre tröskel", eller högre än "högre tröskel".

I ovanstående kod med hjälp av constrain(), vi såg till att cirkelns x-position inte överstiger angivna intervallet (0 till halva bredden, ergo, centrera). Funktionen constrain() är praktiskt i många andra situationer, som dämpa ljusstyrkan på ett ljus för en anläggning, eller begränsa sensor värden inom ett visst intervall.

Cirkla variant 2 (Jiggling cirkel):

Flytta en cirkel över skärmen var ganska söt först. Men eftersom vi har fått några fiffiga verktyg i bagaget nu, låt oss prova något lite mer spännande - att göra cirkeln litegrann!

Vi kan göra cirkeln verkar som det jiggling genom att kontinuerligt göra det flytta en bildpunkt till vänster eller höger eller upp eller ner på ett slumpmässigt sätt (e.g, upp, ner, ner, vänster, vänster, höger, höger, höger... och så vidare). Hur väljer vi slumpmässigt en riktning? Låt oss ta reda på:

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);

}

slumpmässig (lägre värde, övre värde) - inbyggda funktionen genererar ett slumptal inom spänna till det.

Observera att funktionen random genererar flytande punktnummer, inte heltal. Det är därför vi hade att ändra datatyperna för x och y variabler från "int" att "flyta", sedan lägga till ett heltal till en flottör i slutändan ger en flottör, och vi kan inte lagra som i int.

Därför, genom att lägga till flera slumpmässigt både x- och y-koordinaterna för cirkla vid varje iteration av loopen draw(), vi lyckats göra det litegrann. Om du vill att cirkeln till litegrann snabbare, gör utbudet större, som från -10 till + 10 till exempel.

Se Steg
Relaterade Ämnen

Skapa en Robotics simulator med bearbetning

Om du börjar skriva kod för en robot är det oundvikligt att gå igenom ett antal iterationer tills det fungerar som planerat. Arduino gör redan detta lättare men framför allt med komplex gångavstånd robotar kan det vara en mödosam uppgift att programm...

Halloween kyrkogård Howto

efter besök min närliggande craft lagra försäljningsställen och att vara besviken över höga priser och små objekt för mina pengar, jag ut för att bygga ett par gravstenar av min egen. Jag var inte säker på hur väl de skulle se ut men hoppas att du i...

Kvadratur ett skruvstäd på en kvarn - maskin som ett proffs

kvadratur ett skruvstäd är ett viktigt steg att slutföra innan du börjar bearbetning. Om du arbetar i en delad arbetsplats, är det alltid en god idé att kontrollera innan du börjar ditt projekt. Det är inte att hårt och efter att ha gjort det ett par...

Tube biff F'real

detta är en berättelse om låg-temp vatten bad matlagning. Länge en favorit sätt för kemister att exakt styra deras reaktioner, det har nu varit allmänt antagen i den kulinariska världen som Sous Vide matlagning. Nyligen har tekniken anpassats för hem...

En nybörjare Guide till Raw-filer och Raw-bearbetning

En av de första sakerna jag lärt mig om i fotografi var om en filtyp som kallas en Raw-fil. Ofta när någon börjar i fotografi, inser han eller hon inte potentialen i Raw-filer. Först såg jag inte användning för raw-filer, de tycktes erbjuda något som...

Styra en RepStrap bearbetning

detta instructable visar hur du kan använda många öppet tillgängliga projekt tillsammans bygga en intressant och komplexa system. Det drar på flera gemenskapens projekt inklusive: RepRap, Arduino, bearbetning, Linux och, naturligtvis, Instructables!M...

Bearbetning av en bild i en platta av färg

Detta Instructable beskriver hur du bearbetar med maskin en bild i en platta av färg. Befrielsen som ska bearbetas är utvecklat från ett fotografi, där varje pixel ljusstyrka bestämmer höjden av lättnad. Platta av färg består av hundratals lager färg...

Temperatur kontroll för köksmaskiner

i detta Instructable, jag kommer att gå igenom kontrollera temperaturen på de flesta köksapparater. Som ett exempel, jag kommer att använda en gammal Westbend Poppery popcorn maker (aka. kaffe Kafferostningsföretagen), men samma teknik kommer att til...

Svart valnöt skörd & bearbetning

När hösten närmar sig i vårt område i nordöstra Oklahoma, börjar många av våra träd sprida sina grödor, släppa nötter under träd, trädgård, trädgård, buskar, och även på en tillfällig intet ont anande mänskliga nedanför trädet. Vårt hus var tyvärr pl...

Analog stil temperatur mätaren och DataLogger med Intel Edison

I detta instructable du lära dig att ta data från olika sensorer och logga in dem på ett SD-kort, och sedan Visa aktuell temperatur på en servo-driven analog stil mätare. Stort tack till Intel, Instructables och Grove för giveaway!Du behöver:Intellek...

Börjar Microcontrollers del 1

Detta är först i en lång rad av tutorials syftade till att ge Nybörjarguide och handledning kring Atmel AVR Atmega32 mikrokontroller. Jag kommer att visa dig, genom exempel och projekt, hur program och tillhandahålla funktioner för denna mikrokontrol...

35mm: en Guide för nybörjare

* Ansvarsfriskrivning: denna artikel syftar på SLR kameror inte avståndsmätare men kan fortfarande vara bra (kan du google vilken typ din kamera är) *Först av allt, Grattis till äga vad jag förutsatte att vara din första (se eftersom denna artikel är...

Flygplan HDR foto bearbetning

Digital fotografering har öppnat många nya tekniker till massorna. En av de mest imponerande är HDR fotografering. HDR eller High Dynamic Range-bilder, använder digital bearbetning för att kombinera flera bilder på olika exponeringar. Kamerasensorer...

Nybörjare Guide till fotografi

detta instructable är för nybörjare, och tar dig genom 1) lätt saker att fotografera2) utveckla bilder för att vara anständig (oroa dig inte det är mycket lätt jag lärde min stora mormor att göra det)Steg 1: utrustning Om du har en trevlig kamera med...

Data logga temperatur sond (200 ° C till +1300 ° C)

Jag behövde ta temperaturen vs tidmått för forskning utrustning för att avgöra hur mycket tid i förväg någon bör börja prepping innan de faktiskt avser att använda utrustningen. I det här fallet innebär prepping att kyla ner en metall termisk massa m...

Värmeplatta lödning med låg temperatur löda

Detta är en guide om hur man monterar SMT enheter på en flexibel billiga PET PCB. Vi använder en värmeplatta för att löda SMT enheter till PET substrat med låg temperatur Tin vismut löda.Lödning komponenter på PET substrat måste göras med låg tempera...

Att bygga upp EVA Foam rustning för nybörjare Crafter

Om du är en nörd eller inte, skapa din egen kostym armor kommer att ge dig en tillfredsställande känsla av prestation och när den bärs med andra kostym komponenter, visuella resultatet kommer att vara fantastisk. Denna bruksanvisning kommer att beskr...

18th-talet Spice kabinett av 2000-talet träbearbetning

detta Instructable är två Instructables i en.Första är denna Instuctable om att designa och göra 18th Century American möbel, en krydda skåp, med 21-talets träbearbetning tekniker. Det andra är detta Instructable även om processen att utforma och att...

IoT utifrån temperatur och luftfuktighet graf android telefonen i 30 min

Detta projekt bygger på Blynk styrelse sparkfun elektronik. Denna styrelse har inbyggd fukt och temperatur sensorer. I detta projekt kan vi få temperaturen- och luftfuktighet-tid diagram på vår android-telefon som helst i världen med hjälp av interne...