import matplotlib.pyplot as plt import numpy as np # def distancia(x1, y1, x2, y2): # return np.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) # Solicitar las coordenadas de los vértices al usuario # cola x1, y1 =map(float, input("Introduce las coordenadas del vértice A (x1, y1): ").split()) #[1,3] x2, y2 =map(float, input("Introduce las coordenadas del vértice A (x2, y2): ").split()) #[1,6] x3, y3 =map(float, input("Introduce las coordenadas del vértice A (x3, y3): ").split()) #[3,4.5] # parte1 del cuerpo - ocupa el ultimo vertice x3 x4, y4 =map(float, input("Introduce las coordenadas del vértice A (x4, y4): ").split()) #[5,3] x5, y5 =map(float, input("Introduce las coordenadas del vértice A (x5, y5): ").split()) #[5,6] # parte2 "aletainferior" del cuerpo - ocupa el vertice x4 x6, y6 =map(float, input("Introduce las coordenadas del vértice A (x6, y6): ").split()) #[5,1] x7, y7 =map(float, input("Introduce las coordenadas del vértice A (x7, y7): ").split()) #[7,3] # parte3 "aletasuperior" del cuerpo - ocupa el vertice x5 x8, y8 = map(float, input("Introduce las coordenadas del vértice A (x8, y8): ").split()) #[5,8] x9, y9 = map(float, input("Introduce las coordenadas del vértice A (x9, y9): ").split()) #[7,6] # pico x10,y10 =map(float, input("Introduce las coordenadas del vértice A (x10, y10): ").split()) #[9,4.5] # distancias: # primer triangulo a = np.sqrt((x2 - x1)**2 + (y2 - y1)**2) b =np.sqrt((x3 - x2)**2 + (y3 - y2)**2) c =np.sqrt((x3 - x1)**2 + (y3 - y1)**2) # segundo triangulo d =np.sqrt((x4 - x3)**2 + (y4 - y3)**2) e =np.sqrt((x5 - x4)**2 + (y5 - y4)**2) f =np.sqrt((x5 - x3)**2 + (y5 - y3)**2) # rectangulo h =np.sqrt((x9 - x5)**2 + (y9 - y5)**2) g =np.sqrt((x7 - x4)**2 + (y7 - y4)**2) i =np.sqrt((x9 - x7)**2 + (y9 - y7)**2) r1 =np.sqrt((x5 - x7)**2 + (y5 - y7)**2) # triangulo superior j =np.sqrt((x5 - x8)**2 + (y5 - y8)**2) k =np.sqrt((x9 - x8)**2 + (y9 - y8)**2) # triangulo inferior l =np.sqrt((x4 - x6)**2 + (y4 - y6)**2) m =np.sqrt((x7 - x6)**2 + (y7 - y6)**2) # triangulo enfrente n =np.sqrt((x10 - x7)**2 + (y10 - y7)**2) ñ =np.sqrt((x10 - x9)**2 + (y10 - y9)**2) # triangulo cola angulo1 = np.degrees(np.arccos((a**2 + c**2 - b**2) / (2 * a * c))) angulo2 = np.degrees(np.arccos((a**2 + b**2 - c**2) / (2 * a * b))) angulo3 = np.degrees(np.arccos((c**2 + b**2 - a**2) / (2 * c * b))) # triangulo segundo angulo4 = np.degrees(np.arccos((f**2 + d**2 - e**2) / (2 * f * d))) angulo5 = np.degrees(np.arccos((d**2 + e**2 - f**2) / (2 * d * e))) angulo6 = np.degrees(np.arccos((f**2 + e**2 - d**2) / (2 * f * e))) # triangulo 1 de rectangulo angulo7 = np.degrees(np.arccos((r1**2 + e**2 - g**2) / (2 * r1 * e))) angulo8 = np.degrees(np.arccos((e**2 + g**2 - r1**2) / (2 * e * g))) angulo9 = np.degrees(np.arccos((g**2 + r1**2 - e**2) / (2 * g * r1))) # triangulo 2 de rectangulo angulo10 = np.degrees(np.arccos((r1**2 + i**2 - h**2) / (2 * r1 * i))) angulo11 = np.degrees(np.arccos((h**2 + i**2 - r1**2) / (2 * h * i))) angulo12 = np.degrees(np.arccos((h**2 + r1**2 - i**2) / (2 * h * r1))) # triangulo superior angulo13 = np.degrees(np.arccos((h**2 + j**2 - k**2) / (2 * h * j))) angulo14 = np.degrees(np.arccos((h**2 + k**2 - j**2) / (2 * h * k))) angulo15 = np.degrees(np.arccos((j**2 + k**2 - h**2) / (2 * j * k))) # triangulo inferior angulo16 = np.degrees(np.arccos((l**2 + g**2 - m**2) / (2 * l * g))) angulo17 = np.degrees(np.arccos((l**2 + m**2 - g**2) / (2 * l * m))) angulo18 = np.degrees(np.arccos((m**2 + g**2 - l**2) / (2 * m * g))) # triangulo delantero angulo19 = np.degrees(np.arccos((i**2 + n**2 - ñ**2) / (2 * i * n))) angulo20 = np.degrees(np.arccos((n**2 + ñ**2 - i**2) / (2 * n * ñ))) angulo21 = np.degrees(np.arccos((ñ**2 + i**2 - n**2) / (2 * ñ * i))) plt.figure() plt.plot([x1, x2, x3, x1], [y1, y2, y3, y1], marker='o', linestyle='-') plt.plot([x3, x4, x5, x3], [y3, y4, y5, y3], marker='o', linestyle='-') plt.plot([x4, x7, x9, x5], [y4, y7, y9, y5], marker='o', linestyle='-') plt.plot([x4, x6, x7], [y4, y6, y7], marker='o', linestyle='-') plt.plot([x5, x8, x9], [y5, y8, y9], marker='o', linestyle='-') plt.plot([x7, x10, x9], [y7, y10, y9], marker='o', linestyle='-') plt.plot ([x5,x7],[y5,y7],marker='o', linestyle='-') # primer triangulo(cola) plt.text (0.2,4.5, f"a: {a}") plt.text (2,5.7, f"b: {b}") plt.text (2,3.2, f"c: {c}") # segundo tringulo (junto la cola) plt.text (3.9,3, f"d: {d}") plt.text (5.1,4.5, f"e: {e:.2f}") plt.text (3.7,5.5, f"f: {f:.2f}") # rectangulo plt.text (6,3.2, f"g: {g:.2f}") plt.text (6,6.2, f"h: {h}") plt.text (7,4.5, f"i: {i}") plt.text (5.9,5, f"dv: {r1:.1f}") # triangulo superior plt.text (4,7, f"j: {j}") plt.text (6,7, f"k: {k:.1f}") # triangulo inferior0 plt.text (4,2, f"l: {l}") plt.text (6,2, f"m: {m:.1f}") # triangulo enfrente plt.text (8,3.2, f"n: {n}") plt.text (8,5.6, f"ñ: {ñ:.1f}") # angulos triangulo cola plt.text (0.8,3.1, f"Ang1: {angulo1:.1f}") plt.text (0.8,6, f"Ang2: {angulo2:.1f}") plt.text (2,4.5, f"Ang3: {angulo3:.1f}") # angulos triangulo 2 plt.text (3,4.5, f"Ang4: {angulo4:.1f}") plt.text (4.5,3.5, f"Ang5: {angulo5:.1f}") plt.text (4.5,5, f"Ang6: {angulo6:.1f}") # angulos triang 1 -rectangulo plt.text (5,5.3, f"Ang7: {angulo7:.1f}") plt.text (5,3.1, f"Ang8: {angulo8:.1f}") plt.text (6.5,3.1, f"Ang9: {angulo9:.1f}") # angulos triang 2 -rectangulo plt.text (6.7,3.8, f"Ang10: {angulo10:.1f}") plt.text (6.6,5.7, f"Ang11: {angulo11:.1f}") plt.text (5.3,5.7, f"Ang12: {angulo12:.1f}") # angulos triang superior plt.text (5,6.1, f"Ang13: {angulo13:.1f}") plt.text (6.5,6.1, f"Ang14: {angulo14:.1f}") plt.text (5,7.8, f"Ang15: {angulo15:.1f}") # angulos triang inferior plt.text (5,2.9, f"Ang16: {angulo16:.1f}") plt.text (4.7,1.2, f"Ang17: {angulo17:.1f}") plt.text (6.4,2.3, f"Ang18: {angulo18:.1f}") # angulos triang inferior plt.text (7,3.1, f"Ang19: {angulo19:.1f}") plt.text (8.3,4.5, f"Ang20: {angulo20:.1f}") plt.text (7,5.6, f"Ang21: {angulo21:.1f}") plt.grid(True) plt.title('Triángulo con Cálculo de Ángulos y Longitudes') plt.xlabel('X') plt.ylabel('Y') plt.show()