Heim > Java > javaLernprogramm > Wie überprüfe ich die Richtung von drei geordneten Punkten in Java?

Wie überprüfe ich die Richtung von drei geordneten Punkten in Java?

PHPz
Freigeben: 2023-09-14 14:21:04
nach vorne
904 Leute haben es durchsucht

Wie überprüfe ich die Richtung von drei geordneten Punkten in Java?

In diesem Artikel finden wir die Richtungen von 3 geordneten Punkten. Unter Richtung versteht man hier, ob ein gegebener Punkt im Raum eine im Uhrzeigersinn, gegen den Uhrzeigersinn oder kollineare Form bildet.

Im Bild oben sind a, b, c die drei Punkte, um die Richtung der Form im Raum zu überprüfen. Wir ermitteln die Richtung von drei gegebenen Punkten, indem wir die Steigung berechnen.

Berechnen Sie die Steigung und die Richtung von 3 geordneten Punkten.

Steigung des Liniensegments

Steigung des Liniensegments $(a,b):theta=left ( y_{b}-y_{a} right )/left ( x_{b} -x_{a}right )$

Steigung des Liniensegments $(b,c)$: $phi=left ( y_{c} -y_{b}right )/(x_{c}-x_{b})$

Daher hängt die Richtung von folgendem Ausdruck ab:

$$(y_{b}-y_{a})(x_{c}-x_{b})-(y_{c}-y_{b})(x_{b}-x_{a}) : Oder :(y2-y1)*(x3-x2)-(y3-y2)*(x2-x1)$$

Das heißt, ob es sich um eine positive Zahl, eine negative Zahl oder

handelt
  • Wenn der Ausdruck Null ist, dann ist θ = φ. Daher sind die Richtungen kollinear.

  • Wenn der Ausdruck negativ ist, dann ist θ

  • Wenn der Ausdruck positiv ist, dann ist θ > Die Richtung ist also im Uhrzeigersinn.

Lass uns anfangen!

Zeigen Sie einige Beispiele

Die Übersetzung von

Instance-1

lautet:

Instance-1

Angenommen, die 3 geordneten Punkte sind (0,3), (4,2), (3,1)

Nachdem die Richtung von 3 geordneten Punkten überprüft wurde, lautet das Ergebnis:

Die vorgegebenen 3 Punkte werden gebildet: im Uhrzeigersinn

Die chinesische Übersetzung von

Instance-2

lautet:

Instance-2

Angenommen, die 3 geordneten Punkte sind (0,3), (1,2), (9,5)

Nachdem die Richtung von 3 geordneten Punkten überprüft wurde, lautet das Ergebnis:

Die vorgegebenen 3 Punkte werden gebildet: gegen den Uhrzeigersinn

Beispiel 3

Angenommen, die 3 geordneten Punkte sind (2,2), (3,3), (4,4)

Nachdem die Richtung von 3 geordneten Punkten überprüft wurde, lautet das Ergebnis:

Gegebene 3-Punkte-Form: linear

Algorithmus

Schritt 1 – 3 bestellte Punkte angeben.

Schritt 2 – Übergeben Sie die drei angegebenen Punkte an den Ausdruck, d. h. (b.y – a.y) * (c.x – b.x) – (b.x – a.x) * (c.y – b.y).

Schritt 3 – Überprüfen Sie die linearen, rechts- und linksläufigen Bedingungen.

Schritt 4 – Drucken Sie die Ergebnisse aus.

Mehrere Methoden

Wir bieten Lösungen auf unterschiedliche Weise.

  • über statische Eingabe

  • Durch die Verwendung benutzerdefinierter Methoden

Schauen wir uns das Programm und seine Ausgabe einzeln an.

Methode 1: Statische Eingabe verwenden

Übergeben Sie bei dieser Methode zunächst 3 Punkte an den Ausdruck, um die linearen, rechts- und linksläufigen Bedingungen zu überprüfen. Drucken Sie dann das Ergebnis aus, um es auszugeben.

Beispiel

public class Main{
   //main method
   public static void main(String[] args){
      //Declaring variables
      int x1=0, y1=1;
      int x2=4, y2=3;
      int x3=3, y3=2;
      
      //expression to check for 3 ordered point
      int val = (y2 - y1) * (x3 - x2) - (x2 - x1) * (y3 - y2);
      
      // check for collinear
      if (val == 0){
         //printing collinear orientation
         System.out.print("The given 3 points form : Linear");
      }
      
      //check for clockwise
      else if(val > 0){
         
         //printing clockwise orientation
         System.out.print("The given 3 points form: Clockwise");
      } else {
        
         //printig counter clockwise orientation
         System.out.print("The given 3 points form: CounterClockwise");
      }
   }
}
Nach dem Login kopieren

Ausgabe

The given 3 points form: Clockwise
Nach dem Login kopieren

Methode 2: Benutzerdefinierte Methoden verwenden

Bei dieser Methode werden die ersten drei Punkte über eine benutzerdefinierte Methode an den Ausdruck übergeben, um lineare, rechts- und linksläufige Bedingungen zu überprüfen. Drucken Sie dann das Ergebnis aus, um es auszugeben.

Beispiel

public class Main {
   public static void main(String[] args){
      Point a = new Point(2, 2);
      Point b = new Point(3, 3);
      Point c = new Point(4, 4);
      
      //calling user defined method
      int o = orientation(a, b, c);
     
      //check for Linear orientation
      if (o==0)	
      
         //printing Linear orientation
         System.out.print("The given 3 points form : Linear");
     
      //check for Clockwise orientation
      else if (o == 1)
     
         //printing clockwise orientation
         System.out.print("The given 3 points form : Clockwise");
      else
      
         //printing counter clockwise orientation
         System.out.print("The given 3 points form : CounterClockwise");
   }

   // user defined method
   public static int orientation(Point a, Point b,	Point c){
     
     //expression to check for 3 ordered point
      int val = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y);
      
      // check for collinear
      if (val == 0) return 0; 
      
      // check for clock or counterclock wise
      return (val > 0)? 1: 2;
   }
}
class Point{
   int x, y;
   Point(int x,int y){
      this.x=x;
      this.y=y;
   }
}
Nach dem Login kopieren

Ausgabe

The given 3 points form : Linear
Nach dem Login kopieren

In diesem Artikel untersuchen wir, wie man die Richtung bestimmt, indem man die Richtung von drei geordneten Punkten mithilfe der Programmiersprache Java überprüft.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich die Richtung von drei geordneten Punkten in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage