Dieser Artikel dient zum Verständnis der Struktur des Programms durch Verarbeitung. Dieses Mal werde ich über Funktionen schreiben.
Inhaltsverzeichnis 0. Verwendung der Funktion
Funktionen sind wie Ausgabegeräte. Es nimmt etwas, konvertiert es und gibt es aus.
Der Hauptgrund ist ① ** Weil das Programm leichter zu lesen ist. ** ** ** ② ** Weil es wiederverwendet werden kann. ** ** ** (Details zur Wiederverwendung später)
Es gibt zwei Arten von Funktionen: "** vorbereitete Funktionen " und " selbst definierte Funktionen **".
Die im Voraus bereitgestellten Funktionen sind insbesondere size (), background (), line (), void setup (), void draw () ... usw.
In der Verarbeitung ** werden viele Funktionen im Voraus vorbereitet **. Größe (), Hintergrund (), Rechteck (), Ellipse () ... usw. In der Funktion size () zeigt size (600.400) beispielsweise ein Fenster mit einer Breite von 600px und einer Höhe von 400px an.
Wichtig hierbei ist, dass die vorgefertigten Funktionen nach ** den Regeln ** verwendet werden müssen.
Beispielsweise führt die Größe (600.400.300.200) zu einem Fehler. Sie finden die ** festen Regeln ** unter Processing Reference.
(Beispiel) Feste Größenregel ()
Bei der Programmierung können Sie Ihre eigenen Originalfunktionen erstellen, um das Programm zu vereinfachen. Zunächst vereinfachen wir das Programm, das die folgenden Kreise anzeigt.
maru.java
void setup(){
size(200,200);
background(255);
}
void draw(){
strokeWeight(3);
stroke(77,196,224);
noFill();
ellipse(100,100,30,30);
}
Um das Programm zu vereinfachen ① ** Modularisieren ** ② ** Mach es wiederverwendbar ** Ich werde das machen.
maru_module.java
void setup(){
size(200,200);
background(255);
}
//Sie sehen auf einen Blick, was Sie wiederholen müssen!
void draw(){
//Führen Sie die ursprünglich erstellte Funktion aus.
maru();
}
//Hier zusammengefasst! !!
void maru(){
strokeWeight(3);
stroke(77,196,224);
noFill();
ellipse(100,100,30,30);
}
Point : Durch die Kombination von ** zu einer Funktion ** wird die Funktion draw () sauberer und das Programm leichter verständlich.
Wiederverwendbar bedeutet, dass ** mehrere Ausgänge möglich sind **.
maru_reuse.java
void setup(){
size(200,200);
background(255);
}
void draw(){
//Verwenden Sie Ihre eigene definierte Funktion
//Sie können problemlos mehrere Kreise anzeigen!
//maru(x-Koordinate,y-Koordinate,Die Größe des Kreises);
maru(100,80,100);
maru(100,100,50);
}
//Funktionsdefinition
//Entscheide zuerst, was als Argument zu nehmen ist
void maru(float x,float y,float s){
strokeWeight(3);
stroke(77,196,224);
noFill();
//Es sagt, was der Wert des Arguments zu verwenden ist
ellipse(x,y,s,s);
}
Point : Lassen Sie den Wert des Arguments (Parameters) bestimmen, um es wiederverwendbar zu machen. Auf diese Weise können Sie den Ausgabewert der Funktion ändern.
zu diesem Zweck (1) Entscheiden Sie, welchen Wert Sie ändern möchten, und drücken Sie ihn als Variable aus.
ellipse(x,y,s,s);
(2) Definieren Sie das Argument in Form der ** Datentypvariablen **.
void maru(float x,float y,float s){
}
③ Verwenden Sie die Funktion gemäß den Regeln der von Ihnen definierten Funktion.
maru(100,80,100);
Die als Ergebnis der Ausführung der Funktion empfangenen Daten werden als ** Rückgabewert ** bezeichnet.
Die Funktion gibt grundsätzlich einen Wert wie int oder float zurück. Beispiel einer Funktion, die eine Float-Typ-Nummer ↓ zurückgibt
float_function.java
void setup(){
//Selbst definierter Durchschnitt()Verwenden Sie eine Funktion, um der Variablen f den Durchschnittswert zuzuweisen.
float f = average(12.0,6.0);
//Zeigen Sie den Wert von f an.
println(f);
}
//Eine Funktion, die den Durchschnittswert von zwei Durchschnittswerten berechnen kann()Ist definiert.
float average(float num1,float num2){
//Erstellen Sie einen Ausdruck, damit der Variable av der Durchschnittswert von zwei Werten zugewiesen werden kann
float av = (num1 + num2) / 2.0;
//Gibt eine Float-Typ-Nummer als Rückgabewert zurück
return av;
}
9.0
Zeichenfunktionen wie ellipse () geben jedoch keinen Wert zurück. Verwenden Sie void, wenn die Funktion keinen ** Rückgabewert ** wie diesen zurückgibt.
Point : Funktionen, die keinen Rückgabewert zurückgeben, werden normalerweise von sich selbst verwendet. (Das heißt, nichtig ist nicht geschrieben) background (), fill (), rect () .... etc. Fügen Sie der Funktion **, die den Verarbeitungsinhalt mit ** {} bestimmt, void hinzu. void setup () {}, void draw () {} ... usw.
sakura.java
int x = 300;
int y = 300;
//Definieren Sie eine Variable r, die die Drehzahl bestimmt.
float r = 30.0;
//Definieren Sie die Variable a, die die Transparenz der Kirschblüten bestimmt.
int a = 150;
void setup(){
size(600,600);
}
void draw(){
background(255);
//Die Darstellungen bis popMatrix werden zusammen ausgegeben.
pushMatrix();
//Referenzpunkt der Koordinaten(Ursprung)Zu(x,y)Nach ... Ziehen
translate(x,y);
//Verwenden Sie die Variable r, um zu bestimmen, wie viel gedreht werden soll.
rotate(frameCount/r);
//Darstellung von Kirschblüten
for(int i = 0;i < 5;i++){
rotate(TWO_PI * 1/5);
noStroke();
fill(255,50,80,a);
stroke(225,50,80,100);
bezier(0,0,35,-20,35,-52,8,-80);
bezier(0,0,-35,-20,-35,-52,-8,-80);
stroke(225,50,80,30);
triangle(0,0,8,-80,0,-75);
triangle(0,0,-8,-80,0,-75);
}
fill(200,50,100,200);
ellipse(0,0,15,15);
//Die Darstellung von Kirschblüten wird zusammen ausgegeben.
popMatrix();
}
sakura_module.java
int x = 300;
int y = 300;
float r = 30.0;
int a = 150;
void setup(){
size(600,600);
}
//draw()Das Innere der Funktion ist sauberer und übersichtlicher geworden.
void draw(){
background(255);
//Verwenden Sie Ihre eigene definierte Funktion!
sakura();
}
//Definieren Sie eine Funktion für Kirschblütenblätter.
void sakura(){
pushMatrix();
translate(x,y);
rotate(frameCount/r);
for(int i = 0;i < 5;i++){
rotate(TWO_PI * 1/5);
noStroke();
fill(255,50,80,a);
stroke(225,50,80,100);
bezier(0,0,35,-20,35,-52,8,-80);
bezier(0,0,-35,-20,-35,-52,-8,-80);
stroke(225,50,80,30);
triangle(0,0,8,-80,0,-75);
triangle(0,0,-8,-80,0,-75);
}
fill(200,50,100,200);
ellipse(0,0,15,15);
popMatrix();
}
sakura_reuse.java
void setup(){
size(600,600);
}
void draw(){
background(255);
//Ausgang 3 funktioniert mit unterschiedlichen Parametern
sakura(400,200,30,150);
sakura(100,300,-40,100);
sakura(380,400,60,50);
}
//Definieren Sie die ursprüngliche Funktion
//Argumente werden in Form von Datentypen und Variablen definiert.
void sakura(float x,float y,float r,float a){
pushMatrix();
translate(x,y);
rotate(frameCount/r);
for(int i = 0;i < 5;i++){
rotate(TWO_PI * 1/5);
noStroke();
fill(255,50,80,a);
stroke(225,50,80,100);
bezier(0,0,35,-20,35,-52,8,-80);
bezier(0,0,-35,-20,-35,-52,-8,-80);
stroke(225,50,80,30);
triangle(0,0,8,-80,0,-75);
triangle(0,0,-8,-80,0,-75);
}
fill(200,50,100,200);
ellipse(0,0,15,15);
popMatrix();
}
Danke fürs Lesen. Wir freuen uns über Ihre Meinungen und Vorschläge, um den Artikel noch besser zu machen.
Recommended Posts