# vectores.py
"""
Ars longa, vita brevis
*********************************
Hilario Iglesias Martinez
**********************************
Este sencillo programa representa tres vectores espacialmente.
Realizando la operación de suma con los mismo.
Como resultado tiene una salida grafíca con el
vector resultante, aprovechando la importacion de
la librería gráfica matplotlib.
**********************************
Se debe instalar el modulo matplotlib
por consola de linux, en mi caso el sisterma
operativo es Ubuntu.
Instalar de la siguiente forma:
pip install matplotlib.
Ejecutar el programa:
python3 vectores.py
******************************
Creado en Plataforma Linux.
Ubuntu 20.04.6 LTS.
IDE SUBLIME TEXT.
Ejecutado bajo consola linux.
Python 3.8.10
---------------------------
"""
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def representar_vector(ax, vector, color, label):
# Desempaquetar las componentes del vector
x, y, z = vector
# Representar el vector como una flecha en el origen (0, 0, 0)
ax.quiver(0, 0, 0, x, y, z, color=color, label=label, linewidth=2)
# Agregar una etiqueta al final del vector con las coordenadas
ax.text(x, y, z, f'({x}, {y}, {z})', color='red', fontsize=12)
# Configurar los ejes
max_coordinate = max(x, y, z)
ax.set_xlim([0, max_coordinate + 1])
ax.set_ylim([0, max_coordinate + 1])
ax.set_zlim([0, max_coordinate + 1])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
if __name__ == "__main__":
# Vectores originales
vector1 = [3, 4, 5]
vector2 = [2, 8, 5]
# Sumar los vectores
vector_suma = [vector1[0] + vector2[0], vector1[1] + vector2[1], vector1[2] + vector2[2]]
# Crear la figura y los subplots 3D
fig = plt.figure()
ax1 = fig.add_subplot(131, projection='3d')
representar_vector(ax1, vector1, 'blue', 'Vector 1')
ax2 = fig.add_subplot(132, projection='3d')
representar_vector(ax2, vector2, 'green', 'Vector 2')
ax3 = fig.add_subplot(133, projection='3d')
representar_vector(ax3, vector_suma, 'red', 'Vector Suma')
# Ajustar el tamaño de la figura para que los subplots no se superpongan
plt.tight_layout()
# Mostrar el gráfico con los tres subplots
plt.show()
Comentarios sobre la versión: V-0 (0)
No hay comentarios