[Verarbeitung × Java] Verwendung der Funktion

Dieser Artikel dient zum Verständnis der Struktur des Programms durch Verarbeitung. Dieses Mal werde ich über Funktionen schreiben.

ezgif.com-gif-maker (4).gif

Inhaltsverzeichnis 0. Verwendung der Funktion

  1. Vorbereitete Funktionen
  2. Funktionen, die Sie definieren und erstellen
  3. Beispiel für Funktionsmodularisierung → Wiederverwendung

0. Was ist eine Funktion?

0-0. ** Was ist eine Funktion **

Funktionen sind wie Ausgabegeräte. Es nimmt etwas, konvertiert es und gibt es aus.

0-1. ** Warum Funktionen verwenden **

Der Hauptgrund ist ① ** Weil das Programm leichter zu lesen ist. ** ** ** ② ** Weil es wiederverwendet werden kann. ** ** ** (Details zur Wiederverwendung später)

0-2. ** Funktionstyp **

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.

1. ** Vorbereitete Funktionen **

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

スクリーンショット 2020-07-06 11.23.34 1.png

2. ** Funktionen, die Sie definieren und erstellen **

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

olympic.png

Um das Programm zu vereinfachen ① ** Modularisieren ** ② ** Mach es wiederverwendbar ** Ich werde das machen.

① Modulieren

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.

② Machen Sie es wiederverwendbar

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

olympic01.png

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

□ ** Was ist nichtig **

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.

3. Beispiel für Funktionsmodularisierung → Wiederverwendung

◯ Programm zum Zeichnen von Kirschblütenblättern

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

ezgif.com-gif-maker (3).gif

◯ Programm zum Zeichnen von Kirschblütenblättern (modularisieren)

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

◯ Programm zum Zeichnen von Kirschblütenblättern (wiederverwendbar machen)

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

ezgif.com-gif-maker (4).gif

Schließlich

Danke fürs Lesen. Wir freuen uns über Ihre Meinungen und Vorschläge, um den Artikel noch besser zu machen.

Recommended Posts

[Verarbeitung × Java] Verwendung der Funktion
[Verarbeitung × Java] Verwendung der Schleife
[Verarbeitung × Java] Verwendung der Klasse
[Verarbeitung × Java] Verwendung von Variablen
[Verarbeitung × Java] Verwendung von Arrays
[Java] Verwendung der File-Klasse
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Java] Verwendung der Calendar-Klasse
[Java] Verwendung von Map
Verwendung von Java Optional
[Java] Verwendung von removeAll ()
Verwendung von Java Map
Verwendung der replace () -Methode (Java Silver)
Verwendung der link_to-Methode
Verwendung von HttpClient (Get) von Java
Verwendung der include? -Methode
Verwendung der Methode form_with
Verwendung von HttpClient (Post) von Java
Verwendung der Wrapper-Klasse
Verwendung von Klassenmethoden [Java]
[Java] Verwendung von List [ArrayList]
Wie verwende ich Klassen in Java?
So fügen Sie die Löschfunktion hinzu
Verwendung von Java-Lambda-Ausdrücken
[Java] Verwendung der Math-Klasse
Verwendung des Java-Aufzählungstyps
[Verarbeitung × Java] Verwendung von Schleife 2 --- verschachtelte Struktur, Koordinatenkonvertierung
Verwendung der Submit-Methode (Java Silver)
[Schienen] Verwendung der Kartenmethode
[Leicht verständliche Erklärung! ] Verwendung der Java-Instanz
[Java] So erhalten Sie das aktuelle Verzeichnis
Verwendung und Definition von Java-Klassen, Importieren
[Leicht verständliche Erklärung! ] Verwendung des Java-Polymorphismus
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
Verwendung der Java Scanner-Klasse (Hinweis)
So erhalten Sie das Datum mit Java
[Leicht verständliche Erklärung! ] Verwendung von ArrayList [Java]
[Java] Erfahren Sie, wie Sie Optional richtig verwenden
[Leicht verständliche Erklärung! ] Verwendung von Java-Überladung
try-catch-finally Ausnahmebehandlung Verwendung von Java
[Leicht verständliche Erklärung! ] Verwendung der Java-Kapselung
So verwenden Sie das Befehlszeilentool "Java" ... So vermeiden Sie das Auftauchen
Der Operator, der geboren wurde, um geboren zu werden, instanceof (Java) ~ So verwenden Sie den instanceof-Operator ~
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
Verwendung von Map
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging