elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Graficar Tiro Parabólico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Graficar Tiro Parabólico  (Leído 5,721 veces)
Boris Morales

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Graficar Tiro Parabólico
« en: 18 Noviembre 2020, 19:08 pm »

Amigos tengo el siguiente código:

Código
  1. from math import pi, tan, cos, sin
  2. from math import radians
  3. import numpy as np
  4. from matplotlib.pylab import *
  5. import matplotlib.pyplot as plt
  6. from math import *
  7. from sympy import *
  8. from sympy.plotting import *
  9. from time import *
  10. from scipy import *
  11.  
  12. while True:
  13.    try:
  14.        vi = float(input("Introduzca la velocidad inicial en (m/s) : "))
  15.        break
  16.    except ValueError:
  17.        print("Cantidad Incorrecta")
  18. print("m/s =",vi)
  19.  
  20. while True:
  21.    try:
  22.        angulo = int(input("Introduzca el ángulo en grados: "))
  23.        break
  24.    except ValueError:
  25.        print("\nCantidad Incorrecta\n")
  26. print(angulo,"°")#no es necesario, lo uso para que vayamos viendo el resultado
  27.  
  28. while True:
  29.    try:
  30.        g = float(input("Introduzca el valor de gravedad en m/s^2: "))
  31.        break
  32.    except ValueError:
  33.        print("\nCantidad Incorrecta\n")
  34. print("\ng =",g)
  35.  
  36. grados = ((angulo*pi)/180)
  37. print ("\ngrados =",grados)
  38.  
  39. while True:
  40.    try:
  41.        xo = float(input("Posición horizontal inicial [x0]: "))
  42.        break
  43.    except ValueError:
  44.        print("\nCantidad Incorrecta\n")
  45.  
  46. while True:
  47.    try:
  48.        yo = float(input("Posición vertical inicial [y0]: "))
  49.        break
  50.    except ValueError:
  51.        print("\nCantidad Incorrecta\n")
  52.  
  53.  
  54. a = tan(grados)
  55. b = ((g)/((2*vi*2)*cos(grados)*2))
  56. print()
  57. ymax=(vi**2)*(np.sin(grados)*sin(grados))/(2*g)
  58. xmax=(vi**2)*(np.sin(2*grados))/(g)
  59. vho = vi*(cos(radians(angulo)))
  60. vver = vi*(sin(radians(angulo)))
  61. print("Un proyectil lanzado con una velocidad inicial de Vo=",vi,"m/s y un ángulo de α=",angulo,"°,")
  62. print("iniciará su trayectoria con una velocidad horizontal de vxO: ",format(vho,".3f"),"m/s,")
  63. print("y una velocidad vertical de vyO: ",format(vver,".3f"),"m/s.")
  64. print()
  65. print("Los parámetros más relevantes de su trayectoria son:")
  66.  
  67. tmax=(vi*sin(grados))/(g)
  68. tv=2*(tmax)
  69. print()
  70. print(str("La altura máxima  alcanzada por el proyectil es: Ymax")+" = "+str(ymax)+" m")
  71. print()
  72. print(str("El alcance máximo horizontal  del proyectil es: Xmax")+" = "+str(xmax)+" m")
  73. print()
  74. print("La altura máxima (m) alcanzada por el proyectil es: Ymax =",format(ymax,".2f"))
  75. print()
  76. print("El alcance máximo horizontal(m) del proyectil es: Xmax =",format(xmax," .2f"))
  77. print()
  78. print("El tiempo máximo t1max (s) que alcanza el proyectil para el ángulo β es: t1max =",format(tmax,".2f"))
  79. print()
  80. print("El tiempo de vuelo t1v(s) que alcanza el proyectil para el angulo β es: t1v =",format(tv,".2f"))
  81. print("----------------------------------------------------------------------")
  82. print("----------------------------------------------------------------------")
  83.  
  84. # Definimos la ecuación de la trayectoria
  85. def f(x):
  86.    return(a*x-b*x**2)
  87. x=np.linspace(0,xmax,500)
  88.  
  89. # añadimos el subtitulo
  90. plt.suptitle("CINEMATICA",fontsize=20,color="red")
  91.  
  92. #añadimos las etiquetas de los ejes
  93. xlabel("xmax",fontsize=20,color="red")                                      
  94. ylabel("ymax",fontsize=20,color="blue")
  95. #añadimos texto
  96. plt.text(((np.argmax(f(x)))/2),np.max(f(x))+1,"vi=",fontsize=10)
  97. plt.text(((np.argmax(f(x)))/2)+11,np.max(f(x))+1,(str(vi)+"m/s"),fontsize=10)
  98.  
  99. # Añadimos la rejilla en la gráfica
  100. plt.grid(True)                                                              
  101. plt.grid(color = '0.5', linestyle = '--', linewidth = 1)
  102. # Añadimos los ejes
  103. # plt.axis("tight")
  104.  
  105. # dibujamos y ponemos etiquetas a la gráfica
  106. plt.text(3,1,angulo,fontsize=10)
  107. plt.plot(x, f(x), "red", linewidth = 2, label = (str(angulo)+"º"))
  108.  


Que quisiera me arrojara algo así



Me pudieran orientar por favor  ;D


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Graficar Tiro Parabólico
« Respuesta #1 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:

Código
  1. from math import pi, tan, cos, sin
  2. from math import radians
  3. import numpy as np
  4. #from matplotlib.pylab import *  no lo usas
  5. import matplotlib.pyplot as plt
  6. #from math import * ya estás importando lo que necesitas
  7. #from sympy import * no lo usas
  8. #from sympy.plotting import * no lo usas
  9. #from time import * no lo usas
  10. #from scipy import * no lo usas
  11.  

muchas de esas importaciones hacen más lerda la ejecución o la traban directamente

Código
  1. xlabel("xmax",fontsize=20,color="red")  # linea 93  estas variables como tal no sirven                                    
  2. ylabel("ymax",fontsize=20,color="blue") # linea 94
  3.  

cambialas por:

Código
  1. plt.xlabel("xmax",fontsize=20,color="red")                                      
  2. plt.ylabel("ymax",fontsize=20,color="blue")
  3.  

por último en lo que pusiste no se si te falto copiar pero falta la lína más importante al final:

Código
  1. plt.show()
  2.  

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.






En línea

Boris Morales

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Graficar Tiro Parabólico
« Respuesta #2 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???
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Graficar Tiro Parabólico
« Respuesta #3 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
microfono parabolico
Electrónica
joseyvicente 2 4,668 Último mensaje 6 Marzo 2007, 23:35 pm
por joseyvicente
programa para simular movimiento parabolico « 1 2 »
Programación Visual Basic
Gokuman 13 30,202 Último mensaje 7 Mayo 2008, 16:33 pm
por cobein
Me lo tiro
Foro Libre
scr21 4 3,415 Último mensaje 28 Junio 2011, 12:48 pm
por el-brujo
[Fisica] ¿Velocidad inicial y final? Tiro parabolico...
Foro Libre
meaf75 3 5,758 Último mensaje 7 Octubre 2016, 05:22 am
por engel lex
Disparo parabolico en c++ con la libreria GLUT
Programación C/C++
SaulH 1 4,595 Último mensaje 28 Marzo 2023, 10:18 am
por Lieutenant McFarley
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines