Título: Graficar Tiro Parabólico
Publicado por: Boris Morales en 18 Noviembre 2020, 19:08 pm
Amigos tengo el siguiente código: from math import pi, tan, cos, sin from math import radians import numpy as np from matplotlib.pylab import * import matplotlib.pyplot as plt from math import * from sympy import * from sympy.plotting import * from time import * from scipy import * while True: try: vi = float(input("Introduzca la velocidad inicial en (m/s) : ")) break except ValueError: print("Cantidad Incorrecta") print("m/s =",vi) while True: try: angulo = int(input("Introduzca el ángulo en grados: ")) break except ValueError: print("\nCantidad Incorrecta\n") print(angulo,"°")#no es necesario, lo uso para que vayamos viendo el resultado while True: try: g = float(input("Introduzca el valor de gravedad en m/s^2: ")) break except ValueError: print("\nCantidad Incorrecta\n") print("\ng =",g) grados = ((angulo*pi)/180) print ("\ngrados =",grados) while True: try: xo = float(input("Posición horizontal inicial [x0]: ")) break except ValueError: print("\nCantidad Incorrecta\n") while True: try: yo = float(input("Posición vertical inicial [y0]: ")) break except ValueError: print("\nCantidad Incorrecta\n") a = tan(grados) b = ((g)/((2*vi*2)*cos(grados)*2)) print() ymax=(vi**2)*(np.sin(grados)*sin(grados))/(2*g) xmax=(vi**2)*(np.sin(2*grados))/(g) vho = vi*(cos(radians(angulo))) vver = vi*(sin(radians(angulo))) print("Un proyectil lanzado con una velocidad inicial de Vo=",vi,"m/s y un ángulo de α=",angulo,"°,") print("iniciará su trayectoria con una velocidad horizontal de vxO: ",format(vho,".3f"),"m/s,") print("y una velocidad vertical de vyO: ",format(vver,".3f"),"m/s.") print() print("Los parámetros más relevantes de su trayectoria son:") tmax=(vi*sin(grados))/(g) tv=2*(tmax) print() print(str("La altura máxima alcanzada por el proyectil es: Ymax")+" = "+str(ymax)+" m") print() print(str("El alcance máximo horizontal del proyectil es: Xmax")+" = "+str(xmax)+" m") print() print("La altura máxima (m) alcanzada por el proyectil es: Ymax =",format(ymax,".2f")) print() print("El alcance máximo horizontal(m) del proyectil es: Xmax =",format(xmax," .2f")) print() print("El tiempo máximo t1max (s) que alcanza el proyectil para el ángulo β es: t1max =",format(tmax,".2f")) print() print("El tiempo de vuelo t1v(s) que alcanza el proyectil para el angulo β es: t1v =",format(tv,".2f")) print("----------------------------------------------------------------------") print("----------------------------------------------------------------------") # Definimos la ecuación de la trayectoria def f(x): return(a*x-b*x**2) x=np.linspace(0,xmax,500) # añadimos el subtitulo plt.suptitle("CINEMATICA",fontsize=20,color="red") #añadimos las etiquetas de los ejes xlabel("xmax",fontsize=20,color="red") ylabel("ymax",fontsize=20,color="blue") #añadimos texto plt.text(((np.argmax(f(x)))/2),np.max(f(x))+1,"vi=",fontsize=10) plt.text(((np.argmax(f(x)))/2)+11,np.max(f(x))+1,(str(vi)+"m/s"),fontsize=10) # Añadimos la rejilla en la gráfica plt.grid(True) plt.grid(color = '0.5', linestyle = '--', linewidth = 1) # Añadimos los ejes # plt.axis("tight") # dibujamos y ponemos etiquetas a la gráfica plt.text(3,1,angulo,fontsize=10) plt.plot(x, f(x), "red", linewidth = 2, label = (str(angulo)+"º"))
Que quisiera me arrojara algo así (https://steemitimages.com/640x0/https://steemitimages.com/DQmSThN84pKQbGRkVaFHgxKsXMXhSHoVrD48Db4t3A3v9sP/Movimiento%20de%20proyectil%20python.jpg) Me pudieran orientar por favor ;D
Título: Re: Graficar Tiro Parabólico
Publicado por: tincopasan en 20 Noviembre 2020, 06:18 am
parece que esto es mucho proyecto para vos y no aprendés lo elemental, como dije antes, no voy a hacer el código pero te diré que con copiar y pegar no te alcanza, pero bueno: from math import pi, tan, cos, sin from math import radians import numpy as np #from matplotlib.pylab import * no lo usas import matplotlib.pyplot as plt #from math import * ya estás importando lo que necesitas #from sympy import * no lo usas #from sympy.plotting import * no lo usas #from time import * no lo usas #from scipy import * no lo usas
muchas de esas importaciones hacen más lerda la ejecución o la traban directamente xlabel("xmax",fontsize=20,color="red") # linea 93 estas variables como tal no sirven ylabel("ymax",fontsize=20,color="blue") # linea 94
cambialas por: plt.xlabel("xmax",fontsize=20,color="red") plt.ylabel("ymax",fontsize=20,color="blue")
por último en lo que pusiste no se si te falto copiar pero falta la lína más importante al final: plt.show()
python es simple y muchas bibliotecas también, pero hay que leer e intentar. te volveré a ayudar solo si modificas y agregas algo que intentes aunque no este del todo bien.
Título: Re: Graficar Tiro Parabólico
Publicado por: Boris Morales en 20 Noviembre 2020, 15:46 pm
Eres muy amable tincopasan, apesar de que siempre te doy molestias :-(
Y créeme que si lo intento por eso no me canso de buscar, pero si muchas gracias por tu consejo y sabiduría :-[
Y si no es molestia, podrías recomendarme algún libro, o canal de youtube para seguir aprendiendo más???
Título: Re: Graficar Tiro Parabólico
Publicado por: tincopasan en 21 Noviembre 2020, 03:26 am
no puedo ayudarte con respecto a youtube, no lo uso para python pero con buscar hay muchos, elegí el que te guste. En cuanto a libros en la red está lleno, en lo particular hace mucho leí uno que me gustó, pero no sé si puedo poner un link porque tiene copyright y está en inglés, que no aclaraste en que idioma buscas.
|