Maison > Java > javaDidacticiel > Comment vérifier la direction de trois points ordonnés en Java ?

Comment vérifier la direction de trois points ordonnés en Java ?

PHPz
Libérer: 2023-09-14 14:21:04
avant
894 Les gens l'ont consulté

Comment vérifier la direction de trois points ordonnés en Java ?

Dans cet article, nous retrouverons les directions de 3 points ordonnés. La direction indique ici si un point donné forme une forme dans le sens des aiguilles d'une montre, dans le sens inverse des aiguilles d'une montre ou colinéaire dans l'espace.

Dans l'image ci-dessus, a, b, c sont les trois points permettant de vérifier la direction de la forme dans l'espace. On trouve la direction de trois points donnés en calculant la pente.

Calculez la pente et calculez la direction de 3 points ordonnés.

Pente du segment de ligne

Pente du segment de ligne $(a,b):theta=left ( y_{b}-y_{a} right )/left ( x_{b} -x_{a}right )$

Pente du segment de ligne $(b,c)$ : $phi=gauche ( y_{c} -y_{b}right )/(x_{c}-x_{b})$

La direction dépend donc de l'expression suivante :

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

C'est-à-dire qu'il s'agisse d'un nombre positif, d'un nombre négatif ou

  • Si l'expression est nulle, alors θ = φ. Les directions sont donc colinéaires.

  • Si l'expression est négative, alors θ

  • Si l'expression est positive, alors θ > Le sens est donc dans le sens des aiguilles d’une montre.

Commençons !

Montrez quelques exemples

La traduction de

Instance-1

est :

Instance-1

Supposons que les 3 points ordonnés soient (0,3), (4,2), (3,1)

Après avoir vérifié la direction de 3 points ordonnés, le résultat sera :

Les 3 points donnés sont formés : dans le sens des aiguilles d'une montre

La traduction chinoise de

Instance-2

est :

Instance-2

Supposons que les 3 points ordonnés soient (0,3), (1,2), (9,5)

Après avoir vérifié la direction de 3 points ordonnés, le résultat sera :

Les 3 points donnés sont formés : dans le sens inverse des aiguilles d'une montre

Exemple 3

Supposons que les 3 points ordonnés soient (2,2), (3,3), (4,4)

Après avoir vérifié la direction de 3 points ordonnés, le résultat sera :

Formulaire en 3 points : linéaire

Algorithme

Étape 1 - Déclarez 3 points commandés.

Étape 2 - Passez les trois points donnés à l'expression c'est-à-dire (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y).

Étape 3 - Vérifiez les conditions linéaires, dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre.

Étape 4 - Imprimez les résultats.

Plusieurs méthodes

Nous proposons des solutions de différentes manières.

  • via entrée statique

  • En utilisant des méthodes définies par l'utilisateur

Regardons le programme et sa sortie un par un.

Méthode 1 : Utiliser la saisie statique

Dans cette méthode, passez d'abord 3 points à l'expression pour vérifier les conditions linéaires, dans le sens horaire et antihoraire. Imprimez ensuite le résultat sur la sortie.

Exemple

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");
      }
   }
}
Copier après la connexion

Sortie

The given 3 points form: Clockwise
Copier après la connexion

Méthode 2 : Utiliser des méthodes définies par l'utilisateur

Dans cette méthode, les 3 premiers points sont transmis à l'expression via une méthode définie par l'utilisateur pour vérifier les conditions linéaires, dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre. Imprimez ensuite le résultat sur la sortie.

Exemple

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;
   }
}
Copier après la connexion

Sortie

The given 3 points form : Linear
Copier après la connexion

Dans cet article, nous explorons comment déterminer la direction en vérifiant la direction de 3 points ordonnés à l'aide du langage de programmation Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal