Encuentra las coordenadas del triángulo dado el punto medio de cada lado

Dadas tres coordenadas (x, y), que son el punto medio de los lados del triángulo. La tarea es encontrar las coordenadas del triángulo. 

Ejemplos:  

Input : midx1 = 5, midy1 = 3
        midx2 = 4, midy2 = 4
        midx3 = 5, midy3 = 5

Output : x1 = 4 y1 = 2
         x2 = 4 y2 = 6
         x3 = 6 y3 = 4

coordinates of the triangle given midpoint of each side

Solution can be verified by the figure.

Resolvamos por separado las coordenadas X y las coordenadas Y. Para la coordenada X de los vértices, sean x 1 , x 2 , x 3 . Entonces, la coordenada X de los puntos medios será (x 1 + x 2 )/2, (x 2 + x 3 )/2, (x 3 + x 1 )/2. Observe, la suma de estas 3 expresiones es igual a la suma de las coordenadas X. Ahora, tenemos la suma de 3 variables y 3 expresiones para la suma de cada par de ellas, averigüe los valores de las coordenadas resolviendo ecuaciones. 
De manera similar, resolvemos para las coordenadas Y.

A continuación se muestra la implementación de este enfoque:  

C++

// C++ program to find coordinate of the
// triangle given midpoint of each side
#include<bits/stdc++.h>
#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
// 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] + "<br>");
        }
      }
  
      // Driver code
      var xmid = [5, 4, 5];
      var ymid = [3, 4, 5];
      findVertex(xmid, ymid);
    </script>

Producción: 

6 4
4 2
4 6

Complejidad de tiempo: O(1)

Este artículo es una contribución de Anuj Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *