import numpy as np
import matplotlib.pyplot as plt
# Parámetros
L = 0.06 # Longitud de los lados del triángulo (m)
d_circulo = 0.03 # Diámetro del círculo (m)
r_circulo = d_circulo / 2 # Radio del círculo (m)
# Cálculo de la altura del triángulo
h_triangulo = (np.sqrt(3) / 2) * L # Altura total del triángulo
h_inscrita = h_triangulo / 3 # Distancia desde el baricentro a una arista
# Distancia mínima y máxima
d_minima = h_inscrita - r_circulo
d_maxima = h_triangulo - r_circulo
# Promedio para una cara del triángulo
d_promedio_cara = (d_minima + 2 * d_maxima) / 3
# Coordenadas de los vértices del triángulo equilátero centrado en su baricentro
triangle_x = [-L / 2, L / 2, 0, -L / 2]
triangle_y = [-h_triangulo / 3, -h_triangulo / 3, 2 * h_triangulo / 3, -h_triangulo / 3]
# Generación del círculo centrado en el baricentro (origen)
theta = np.linspace(0, 2 * np.pi, 100)
circle_x = r_circulo * np.cos(theta)
circle_y = r_circulo * np.sin(theta)
# Graficar el triángulo y el círculo
fig, ax = plt.subplots(figsize=(12, 8))
# Graficar triángulo equilátero
ax.plot(triangle_x, triangle_y, 'b-', label='Triángulo equilátero')
# Graficar círculo
ax.plot(circle_x, circle_y, 'r-', label='Círculo centrado')
# Anotación del baricentro
ax.scatter([0], [0], color='purple', label='Baricentro')
# Anotaciones de distancias
ax.text(-0.035, -0.027, f'Distancia mínima: {d_minima:.4f} m', fontsize=16, color='green')
ax.text(-0.035, -0.03, f'Distancia máxima: {d_maxima:.4f} m', fontsize=16, color='blue')
ax.text(-0.035, -0.033, f'Distancia promedio (cara): {d_promedio_cara:.4f} m', fontsize=16, color='orange')
# Configuración de etiquetas y título
ax.set_ylabel('y (m)', fontsize=16)
ax.set_xlabel('x (m)', fontsize=16)
ax.tick_params(axis='both', labelsize=14)
# Leyenda
ax.legend(loc='upper left', fontsize=14)
# Acentuar el marco del gráfico
for spine in ax.spines.values():
spine.set_edgecolor('black')
spine.set_linewidth(2)
# Ajuste de diseño
fig.tight_layout()
# Mostrar el gráfico
plt.show()
To embed this program on your website, copy the following code and paste it into your website's HTML: