Find koordinaterne for trekanten givet midtpunkt på hver side

Find koordinaterne for trekanten givet midtpunkt på hver side

Givet tre koordinater (x y), som er midtpunktet af trekantens sider. Opgaven er at finde trekantens koordinater. 

Eksempler:   

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 

koordinater for trekanten givet midtpunkt på hver side

Solution can be verified by the figure. 

Lad os separat løse for X-koordinater og Y-koordinater. For X-koordinater af toppunkter lad dem være x 1 x 2 x 3 . Så vil X-koordinaten for midterpunkter være (x 1 + x 2 )/2 (x 2 + x 3 )/2 (x 3 + x 1 )/2. Bemærk summen af ​​disse 3 udtryk er lig med summen af ​​X-koordinater. Nu har vi summen af ​​3 variable og 3 udtryk for summen af ​​hvert par af dem find ud af værdierne af koordinater ved at løse ligninger. 
På samme måde løser vi for Y-koordinater.

Nedenfor er implementeringen af ​​denne tilgang:  

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>

Produktion:  

6 4 4 2 4 6 

Tidskompleksitet: O(1)

Hjælpeplads : O(1), fordi den bruger konstant rum


 

Opret quiz