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
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