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

Steg 3: Object Oriented Programming Primer - klasser och objekt



Funktioner i ett nötskal:

En funktion är i huvudsak en bit kod som du kan återanvända mer än en gång. Bryta ner en komplex skiss till mindre funktioner garantera läsbarhet (koden är lättare att läsa, eftersom alla komplexa koden får görat sammandrag, lättare att felsöka i nuläget), modularitet (blir modulära stycken, som legos kod), och förhindrar att få torr (torr står för inte upprepa dig själv, upprepande sätt manuellt kopiera/klistra in koden flera gånger).

Här är den generiska strukturen av en funktion:

data_type_of_returned_value"'void' om det returnerar inget functionName(parameters) {"

funktionsdefinitionen

}

Låt oss genomföra en funktion som visar vår krets, och en annan funktion för dess rörelse (det är, jiggling):

float x = 200.

float y = 200.

void setup() {

size(400,400);

Smooth();

}

void draw() {

Background(255);

Display(); anropa en funktion

Move(); att andra funktionen

}

funktioner

void display() {

noStroke();

Fill(140);

Ellipse(x,y,80,80);

}

void move() {

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

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

}

Även om koden gör exakt samma sak som innan, ser hur organiserade draw() slingan är nu! Notera hur jag "kallas" eller "åberopas" uppgifter från inom draw() slingan.

Funktioner kan ha "parametrar" också. Parametrar är "plats-innehavare" för värden som du kan "passera" på en funktion. Får värdena, kan funktionen beräkna dem i enlighet med hur du har definierat det. Här är exempelvis en funktion som tar i två parametrar (x och y), och använder de passerade argument för att återge här konstiga formen:

void drawShape (float, float XY) {

noStroke();

Fill(140);

Ellipse(x,y,80,80);

Ellipse(x-151,y+2,44,44);

Fill(68,234,66);

rect(x-131,y-5,92,18);

}

Se bilden ovan (första bilden).

I ovanstående funktion, vi använde x och y som referens, och ställa in parametrar för alla andra former "släkting" till x och y. Denna teknik kallas "relativ placering". Till exempel om referens x är 400 och x-värdet av vissa form är 89, sedan placera formen i förhållande till referensränta x är "x-311" (400-89 = 311).

Funktioner kan också "gå tillbaka" värden, men det är för en annan dag!

Ett objekt och klassen berättelse:

Som vi har sett ett tag sedan, medföra funktioner en viss grad av organisation i vår kod. Objekt i vår kod som utnyttjar är dock en mycket effektiv organisation strategi.

Ett objekt i huvudsak binder samman data (variabler) och functionality(functions) för en given enhet i ett snyggt paket. För att skapa objekt, behöver vi en blå-print för det. Detta kallas klassen.

Istället för att babbla om några mer komplicerade begrepp, låt oss skapa en klass för att generera jiggly cirkel objekt:

klassen Circle {

klassvariabler (även kallad förekomstvariabler)

float x;

float y;

flyta d;

färg c;

konstruktorn objekt

Cirkel (float XY, float, flyta d, färg c) {

This.x = x;

This.y = y;

This.d = d;

This.c = c;

}

metoderna som

void display() {

noStroke();

Fill(c);

Ellipse(this.x,this.y,this.d,this.d);

}

void jiggle() {

This.x = this.x + random(-2,2);

This.y = this.y + random(-2,2);

}

}

Saker att notera:

  1. Det är denna bisarra sak i den kod som kallas "constructor". Konstruktören är den funktion som faktiskt skapar ett objekt, tillsammans med nyckelordet "nya" (mer om detta i lite). Konstruktören definitionen bör innehålla koden om hur du skapar objekt. Konstruktören namnet bör vara samma som klassnamnet.
  2. "denna" nyckelordet används för åtkomst variabler den tillhör klassen och bara klassen! Du kan se att jag har använt samma variabel namn för variablerna som klass och parametrarna som konstruktorn. Med hjälp av "detta" kan tillåta jag bearbetning för att skilja mellan två. Därför "this.x = x" anger: lagra värdet skickas till x samtidigt göra objektet till "this.x", klassvariabel.
  3. Samma funktioner vi sett innan som används i klassen. En funktion som är associerade med en klass som kallas en "metod".

Det är en god praxis att hålla dina klasser i en separat fil, så att din huvudsakliga koden ser snyggt. Du kan göra detta genom att skapa en andra fliken bearbetning miljön. Observera, flikens namn måste vara samma som för klassen. (se bilden ovan, tredje bilden).

Med hjälp av klassen för att göra objekt:

att förklara objekt

Cirkeln c;

Cirkel d;

void setup() {

size(400,400);

Smooth();

initierar objekt

c = nya Circle(200,200,80,color(100));

d = nya Circle(344,355,20,color(62,177,137));

}

void draw() {

Background(255);

med hjälp av objekt

c.display();

c.jiggle();

d.display();

d.jiggle();

}

se resultatet ovan (andra bilden).

Att förklara objekt - samtidigt att förklara objekt, det är lättare att överväga klassen som en nyskapad datatyp. Så, betyder "Cirkeln c" deklarerar en variabel "c" av typen "Cirkel" (jämför med "int c").

Initierar objekt - se hur vi åberopat konstruktören via nyckelordet "nya"? Eftersom cirkeln konstruktören definitionen hade parametrar, måste vi passera argument för att initiera objektet. Dessa argument tilldelas objektets variabler (x, y, c osv.). Detta tillåter oss att använda samma klass för att skapa objekt med olika egenskaper. I exemplet ovan är cirklar c och d olika varandra i storlek och färg.

Dessutom märke att objekt initieras på setup(). Detta är logiskt, eftersom vi har ingen avsikt att initiera objektet samma om och om igen i draw().

Med hjälp av objekt - vi använder dot "." operatören att få tillgång till objektets metoder, som kan ses ovan.

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...