Trouver les coordonnées du triangle étant donné le milieu de chaque côté

Trouver les coordonnées du triangle étant donné le milieu de chaque côté

Étant donné trois coordonnées (x y) qui sont le milieu des côtés du triangle. La tâche est de trouver les coordonnées du triangle. 

Exemples :   

Input : midx 1  = 5 midy 1  = 3 midx 2  = 4 midy 2  = 4 midx 3  = 5 midy 3  = 5 Output : x 1  = 4 y 1  = 2 x 2  = 4 y 2  = 6 x 3  = 6 y 3  = 4 

coordonnées du triangle étant donné le milieu de chaque côté

Solution can be verified by the figure. 

Résolvons séparément les coordonnées X et les coordonnées Y. Pour la coordonnée X des sommets, soit x 1 x 2 x 3 . Alors la coordonnée X des points médians sera (x 1 +x 2 )/2 (x 2 +x 3 )/2 (x 3 +x 1 )/2. Observez que la somme de ces 3 expressions est égale à la somme des coordonnées X. Nous avons maintenant une somme de 3 variables et 3 expressions pour que la somme de chaque paire d'entre elles découvre les valeurs des coordonnées en résolvant des équations. 
De même, nous résolvons les coordonnées Y.

Ci-dessous la mise en œuvre de cette approche :  

C++
   // C++ program to find coordinate of the   // triangle given midpoint of each side   #include       #define N 3   using     namespace     std  ;   // Return after solving the equations and   // finding the vertices coordinate.   vector   <  int  >     solve  (  int     v  [])   {      vector   <  int  >     res  ;      // Finding sum of all three coordinate.      int     all3     =     v  [  0  ]     +     v  [  1  ]     +     v  [  2  ];      // Solving the equation.      res  .  push_back  (  all3     -     v  [  1  ]  *  2  );      res  .  push_back  (  all3     -     v  [  2  ]  *  2  );      res  .  push_back  (  all3     -     v  [  0  ]  *  2  );      return     res  ;   }   // Finds vertices of a triangles from given   // middle vertices.   void     findVertex  (  int     xmid  []     int     ymid  [])   {      // Find X coordinates of vertices.      vector   <  int  >     V1     =     solve  (  xmid  );      // Find Y coordinates of vertices.      vector   <  int  >     V2     =     solve  (  ymid  );      // Output the solution.      for     (  int     i     =     0  ;     i      <     3  ;     i  ++  )      cout      < <     V1  [  i  ]      < <     ' '       < <     V2  [  i  ]      < <  endl  ;   }   // Driver code   int     main  ()   {      int     xmid  [  N  ]     =     {     5       4       5     };      int     ymid  [  N  ]     =     {     3       4       5     };      findVertex  (  xmid       ymid  );      return     0  ;   }   
Java
   import     java.util.Vector  ;   // Java program to find coordinate of the    // triangle given midpoint of each side    class   GFG     {   //static final int N = 3;    // Return after solving the equations and    // finding the vertices coordinate.       static     Vector   <  Integer  >     solve  (  int     v  []  )     {      Vector   <  Integer  >     res     =     new     Vector   <  Integer  >  ();      // Finding sum of all three coordinate.       int     all3     =     v  [  0  ]     +     v  [  1  ]     +     v  [  2  ]  ;      // Solving the equation.       res  .  add  (  all3     -     v  [  1  ]     *     2  );      res  .  add  (  all3     -     v  [  2  ]     *     2  );      res  .  add  (  all3     -     v  [  0  ]     *     2  );      return     res  ;      }   // Finds vertices of a triangles from given    // middle vertices.       static     void     findVertex  (  int     xmid  []       int     ymid  []  )     {      // Find X coordinates of vertices.       Vector   <  Integer  >     V1     =     solve  (  xmid  );      // Find Y coordinates of vertices.       Vector   <  Integer  >     V2     =     solve  (  ymid  );      // Output the solution.       for     (  int     i     =     0  ;     i      <     3  ;     i  ++  )     {      System  .  out  .  println  (  V1  .  get  (  i  )     +     ' '     +     V2  .  get  (  i  ));      }      }   // Driver code       public     static     void     main  (  String  []     args  )     {      int     xmid  []     =     {  5       4       5  };      int     ymid  []     =     {  3       4       5  };      findVertex  (  xmid       ymid  );      }   }   // This code is contributed by   // PrinciRaj1992   
Python3
   # Python3 program to find coordinate of the   # triangle given midpoint of each side   N   =   3   # Return after solving the equations and   # finding the vertices coordinate.   def   solve  (  v  ):   res   =   []   # Finding sum of all three coordinate.   all3   =   v  [  0  ]   +   v  [  1  ]   +   v  [  2  ]   # Solving the equation.   res  .  append  (  all3   -   v  [  1  ]   *   2  )   res  .  append  (  all3   -   v  [  2  ]   *   2  )   res  .  append  (  all3   -   v  [  0  ]   *   2  )   return   res   # Finds vertices of a triangles from given   # middle vertices.   def   findVertex  (  xmid     ymid  ):   # Find X coordinates of vertices.   V1   =   solve  (  xmid  )   # Find Y coordinates of vertices.   V2   =   solve  (  ymid  )   # Output the solution.   for   i   in   range  (  0     3  ):   print  (  V1  [  i  ]   end  =  ' '  )   print  (  V2  [  i  ])   # Driver code   if   __name__  ==  '__main__'  :   xmid   =   [  5     4     5  ]   ymid   =   [  3     4     5  ]   findVertex  (  xmid     ymid  )   # This code is contributed by   # Sanjit_Prasad   
C#
   // C# program to find coordinate of the    // triangle given midpoint of each side    using     System  ;   using     System.Collections  ;   class     GFG      {         //static final int N = 3;       // Return after solving the equations and       // finding the vertices coordinate.       static     ArrayList     solve  (  int     []  v  )      {         ArrayList     res     =     new     ArrayList  ();         // Finding sum of all three coordinate.       int     all3     =     v  [  0  ]     +     v  [  1  ]     +     v  [  2  ];         // Solving the equation.       res  .  Add  (  all3     -     v  [  1  ]     *     2  );         res  .  Add  (  all3     -     v  [  2  ]     *     2  );         res  .  Add  (  all3     -     v  [  0  ]     *     2  );         return     res  ;         }         // Finds vertices of a triangles from given       // middle vertices.       static     void     findVertex  (  int     []  xmid       int     []  ymid  )      {         // Find X coordinates of vertices.       ArrayList     V1     =     solve  (  xmid  );         // Find Y coordinates of vertices.       ArrayList     V2     =     solve  (  ymid  );         // Output the solution.       for     (  int     i     =     0  ;     i      <     3  ;     i  ++  )      {         Console  .  WriteLine  (  V1  [  i  ]     +     ' '     +     V2  [  i  ]);         }         }         // Driver code       public     static     void     Main  ()         {         int     []  xmid     =     {  5       4       5  };         int     []  ymid     =     {  3       4       5  };         findVertex  (  xmid       ymid  );         }      }      // This code is contributed by mits   
PHP
      // PHP program to find coordinate of the    // triangle given midpoint of each side    $N   =   3  ;   // Return after solving the equations and    // finding the vertices coordinate.    function   solve  (  $v  )   {   $res   =   array  ();   // Finding sum of all three coordinate.    $all3   =   $v  [  0  ]   +   $v  [  1  ]   +   $v  [  2  ];   // Solving the equation.    array_push  (  $res     $all3   -   $v  [  1  ]   *   2  );   array_push  (  $res     $all3   -   $v  [  2  ]   *   2  );   array_push  (  $res     $all3   -   $v  [  0  ]   *   2  );   return   $res  ;   }   // Finds vertices of a triangles from    // given middle vertices.    function   findVertex  (  $xmid     $ymid  )   {   // Find X coordinates of vertices.    $V1   =   solve  (  $xmid  );   // Find Y coordinates of vertices.    $V2   =   solve  (  $ymid  );   // Output the solution.    for   (  $i   =   0  ;   $i    <   3  ;   $i  ++  )   print  (  $V1  [  $i  ]   .   ' '   .   $V2  [  $i  ]   .   '  n  '  );   }   // Driver code    $xmid   =   array  (  5     4     5  );   $ymid   =   array  (  3     4     5  );   findVertex  (  $xmid     $ymid  )   // This code is contributed by mits   ?>   
JavaScript
    <  script  >      // JavaScript program to find coordinate of the      // triangle given midpoint of each side      // Return after solving the equations and      // finding the vertices coordinate.      function     solve  (  v  )     {      var     res     =     [];      // Finding sum of all three coordinate.      var     all3     =     v  [  0  ]     +     v  [  1  ]     +     v  [  2  ];      // Solving the equation.      res  .  push  (  all3     -     v  [  1  ]     *     2  );      res  .  push  (  all3     -     v  [  2  ]     *     2  );      res  .  push  (  all3     -     v  [  0  ]     *     2  );      return     res  ;      }      // Finds vertices of a triangles from given      // middle vertices.      function     findVertex  (  xmid       ymid  )     {      // Find X coordinates of vertices.      var     V1     =     solve  (  xmid  );      // Find Y coordinates of vertices.      var     V2     =     solve  (  ymid  );      // Output the solution.      for     (  var     i     =     0  ;     i      <     3  ;     i  ++  )     {      document  .  write  (  V1  [  i  ]     +     ' '     +     V2  [  i  ]     +     '  
'
); } } // Driver code var xmid = [ 5 4 5 ]; var ymid = [ 3 4 5 ]; findVertex ( xmid ymid ); < /script>

Sortir:  

6 4 4 2 4 6 

Complexité temporelle : O(1)

Espace auxiliaire : O(1) car il utilise un espace constant


 

Créer un quiz