Trova le coordinate del triangolo dato il punto medio di ciascun lato

Trova le coordinate del triangolo dato il punto medio di ciascun lato

Date tre coordinate (x y) che sono il punto medio dei lati del triangolo. Il compito è trovare le coordinate del triangolo. 

Esempi:   

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 

coordinate del triangolo dato il punto medio di ciascun lato

Solution can be verified by the figure. 

Risolviamo separatamente le coordinate X e le coordinate Y. Per la coordinata X dei vertici siano x 1 X 2 X 3 . Quindi la coordinata X dei punti medi sarà (x 1 +X 2 )/2 (x 2 +X 3 )/2 (x 3 +X 1 )/2. Osserva che la somma di queste 3 espressioni è uguale alla somma delle coordinate X. Ora abbiamo la somma di 3 variabili e 3 espressioni per la somma di ogni coppia di esse. Scopriamo i valori delle coordinate risolvendo le equazioni. 
Allo stesso modo risolviamo per le coordinate Y.

Di seguito è riportata l’implementazione di questo approccio:  

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>

Produzione:  

6 4 4 2 4 6 

Complessità temporale: O(1)

Spazio ausiliario : O(1) perché utilizza lo spazio costante


 

Crea quiz