Taller de Aplicaciones Móviles Docente: M.Sc. Víctor Pando Beltrán
PRESENTACIÓN El  presente trabajo del Curso de Taller de Aplicaciones Móviles, cuyo tema es Programación Vpython, lo realizamos con mucho esfuerzo ya que será en beneficio de nuestra formación Profesional, y al mismo tiempo espero que sea de su agrado los aportes, para mis compañeros y Profesores de la Instituto Superior Tecnológico Manuel Núñez Butrón,  de esta ciudad de Juliaca, ya que en el futuro nos servirá como material de consulta para el mejor desenvolvimiento  de nuestra  formación profesional
DEDICATORIA El presente trabajo va dedicado a nuestros queridos padres por el apoyo que nos brindan en el transcurso de nuestros estudios profesionales
Programación en 3D INTEGRANTES: CENTENO MAMANI, Yudy Marcelina MAMANI YUCRA, Vicky Yovana
AGENDA Descripción del proyecto Fundamento teórico Diagrama de flujo Codificación Demostración Conclusiones y Recomendaciones Bibliografía
Descripción del Proyecto El programa que presentamos se trata de una aplicación en física pero con características en 3D.
Fundamento Teórico PYTHON 3D Es una lengua interpretada. El intérprete es la fuente abierta. Una gama buena de bibliotecas existe.  Contenido [puesto] 1 Sobre Python  2 Clases tutoriales y Fuente 2.1 Dependiente de Biblioteca 2.1.1 bibliotecas de programa de juego Genéricas 2.1.2 bibliotecas de 3D 3 Eslabones Externos.
SOBRE  PYTHON  3D: Pythón se ha hecho un instrumento poderoso para el desarrollo animoso. Esto ha sido usado extensivamente en juegos comerciales, incluyendo la Fuerza de Libertad, la VÍSPERA En línea, la Civilización IV, Toontown En línea, los Piratas del caribeño En línea, el Templo de Mal Elemental, y el Campo de batalla 2 (así como 2142).
LA VENTAJA PRIMARIA DEL PYTHON: Consiste en que es muy rápido desarrollarse en. La escritura del código de python típicamente toma una fracción del tiempo que esto toma para escribir el equivalente C el código. Se ha estimado que esto es 5 a 10 veces más rápido para escribir un programa en el Python que C. Esto puede cortar meses o años del tiempo de desarrollo de un proyecto.  Hay también un cuerpo significativo de código de biblioteca que maneja la interpretación de 2D y de 3D de gráficos.
LA DESVENTAJA PRIMARIA DEL PYTHON: Generalmente bastante rápido para cálculos complejos (como la física de 3D). Los juegos más complejos que usan el python 3D. descargan unas subrutinas a C, sobre un como - la base necesaria, o usan una existencia C la biblioteca (como la ODA para la física). La mayor parte de reveladores que intentan esta mezcla son un entusiasta de ello: el resultado es un juego que puede ser desarrollado en la velocidad de pitón, pero que corre en la velocidad de C en cualquier parte doMezclando el python con C, el impacto sobre la velocidad depende cuánto del tiempo es gastado(pasado) ejecutando la lógica de Python contra cuanto del tiempo es gastado(pasado) en bibliotecas C. La lógica de Python puede ser 10-100 veces más despacio que C. Le recomiendan que el código crítico (cálculos de la matriz, manipulaciones " para cada pixel ", la gráfica de 3D, etc.) estar en bibliotecas C.
PYTHON 3D Lo hace fácil al interfaz con C; el Python de Empujón lo hace fácil al interfaz con C ++. Es también posible usar Pyrex, una lengua C/Python híbrida que lo hace en particular fácil para integrarse con bibliotecas C, y también hace posible de escribir el código de C-velocidad en una lengua Parecida a un pitón. Además el TRAGO fácilmente permite a un revelador para abrigarse C/C ++ funciones para el empleo con muchas lenguas scripting incluyendo el Python
PYTHON Generalmente es considerado una lengua limpiamente fácil para aprender. usted encontrará sus rasgos familiares: usted sólo tendrá que gastar(pasar) una hora en las clases tutoriales Python.org para ser capaz de usarlo.  El juego de rasgo del python incluye la lista poderosa y la manipulación de cuerda, mesas, juegos, y una biblioteca importante de funciones de utilidad como la serialización, XML el análisis, la interconexión, expresiones regulares, etcétera, etcétera. La matriz y la manipulación vector son incluidas con el Python Numérico. Bibliotecas muy de alta calidad de 3D de gráficos están también disponibles. Por lo general, todas estas bibliotecas son escritas en y funcionan en la velocidad de C.
UNA VENTAJA CLAVE DE PYTHON 3D Consiste en que es relativamente fácil para no programados para leer. Esto lo hace conveniente como una lengua scripting. Por ejemplo en una RPG usted podría construir la parte principal del juego en C ++, pero escribir escrituras (donde los comerciantes van de noche, lo que el NPCS dice, como el arrastra(canturrea) el paseo hacia adelante y hacia atrás) en el Python.
UNA VENTAJA CLAVE DE PYTHON 3D Para concluir esta lengua es muy útil mientras usted no lo pide hacer lo que esto hace lo peor (el cálculo sobre juegos de datos grandes): tales tareas deberían ser descargadas a C.  Allí existe un instrumento, Psyco, que estimula a su programa sin necesitar que alguno vuelva a escribir. Todo que usted tiene que hacer es la importación ello al principio de su código. La desventaja principal consiste en que Psyco sólo corre sobre plataformas x86-compatibles en este momento.
UNA VENTAJA CLAVE DE PYTHON 3D Si usted planifica el Python de utilización para el desarrollo animoso usted también podría querer pensar mirar el Rubí aunque usted encuentre que el Pythón es más rápido (Todas las Lenguas Comparadas, el Pitón contra el Rubí). Tanto las lenguas tienen su encima de - como inconvenientes, tan escoja sabiamente.  [revisión] Clases tutoriales y Fuente
UNA VENTAJA CLAVE DE PYTHON 3D Dependiente de Biblioteca (revisión) bibliotecas de programa de juego Genéricas Pygame una envoltura SDL para Pitón y las Utilidades Pygame de más Phil PGU. PGU proporciona una colección de instrumentos y bibliotecas que realzan(mejoran) Pygame. Los instrumentos incluyen a un redactor de azulejo y un redactor de nivel (el azulejo, isométrico, hexagonal). GUI realces(mejoras) incluyen gui completo, la interpretación de HTML, la disposición de documento, y la interpretación de texto. Las bibliotecas incluyen un duendecillo y el motor de azulejo (el azulejo, isométrico, hexagonal), un motor estatal, un temporizador, y un alto sistema de cuenta.
UNA VENTAJA CLAVE DE PYTHON 3D Eslabones Externos Python.org la página de pitón Principal, incluida descargan del intérprete y la documentación. Rabbyt una biblioteca de Duendecillo rápida para Pitón con desarrollo animoso en mente. Con Rabbyt Anims, aún viejas tarjetas de gráficos pueden producir las animaciones muy rápidas de 2,400 o más duendecillos que manejan la posición, la rotación, el escalamiento, y colorear simultáneamente. Pyrex Pyrex le deja escribir el código que mezcla el Pitón y datos C escriben cualquier modo que usted quiere, y lo compila en una extensión C para el Pitón. aumente(empuje) el pitón:: un modo conveniente de combinar C ++ y el código de Pitón.
UNA VENTAJA CLAVE DE PYTHON 3D Un modo conveniente de combinar C ++ y código de Pitón. El TRAGO Simplificó la Envoltura y el Generador de Interfaz es un instrumento que fácilmente permite a un revelador para abrigarse C/C ++ funciones para el empleo con lenguas scripting. Corrientemente apoya el Pitón, Perl, y Tcl. Jython puesta en práctica Javanesa de pitón. Psyco un módulo que aumenta(empuja) la velocidad de programas de pitón. Planche el Pitón una puesta en práctica alternativa de pitón para .NET
UNA VENTAJA CLAVE DE PYTHON 3D Abucheo:  Una lengua parecida a un pitón para .NET y Mono. Agradable para el desarrollo animoso porque estáticamente es escrito y controla tan rápido como C * el código. Empleo con el Marco Tao para OpenGL o sea Manejado DirectX. PyOpenGL una encuadernación a OpenGL PyODE una encuadernación al Motor de Dinámica Abierto, una física abierta de la fuente y motor de colisión. Torcido una biblioteca versátil conectada a una red con mucha Colección de Software de 3D de Pitón de rasgos Tranquilo se vincula a vario Pitón el 3D de Pitón de bibliotecas de 3D y relacionado con el juego.
Diagrama de Flujo
Codificación #En este episodio modelamos el comportamiento de una primavera con #arreglo a la Ley de Hooke y eche un vistazo a arrastrar y soltar objetos #en VPython. from __future__ import division from visual import * print""" Spring Force:  Hooke's Law Force = -Spring Constant * Spring Displacement F = -kx The program models the motion of weight attached to a spring after the weight is pulled (stretching the spring) and released. Friction is ignored in this model so once started the system never stops oscillating back and forth. """
########################################################################################## # # INITIALIZE WINDOW & DECLARATIONS # ########################################################################################## scene.range = vector(1,1,1) scene.center = vector(0,0,0) scene.width = 800 scene.height = 600
########################################################################################## # # CREATE SPRING, WEIGHT & LABEL OBJECTS # ########################################################################################## relaxedlength = vector(.60,0,0) # length of spring when it isn't stretched or compressed spring = helix(pos=(-.75,0,0),axis=relaxedlength, radius=.1,coils=8,thickness=.01,color=color.green) spring.constant = 2 # k weight = box(pos=(0,0,0),size=(.3,.3,.3),color=color.yellow) weight.mass = 10 # kg weight.velocity = vector(0,0,0) weight.acceleration = vector(0,0,0) weight.force = vector(0,0,0) frictionlessSurface = box(size=(2,.02,.5),pos=(0,-.16,0)) wall = box(size=(.04,.5,.3),pos=(-.77,.1,0),color=color.red) mylabel = label(pos=(0,.4,0)) mylabel.text = "DRAG WEIGHT TO\nSTART"
# WAIT FOR USER TO DRAG THE WEIGHT # ########################################################################################## pick = 0 weightmoved = False while not weightmoved: if scene.mouse.events: mouse = scene.mouse.getevent() # obtain drag or drop event if mouse.drag and mouse.pick == weight: # if clicked on the weight drag_pos = mouse.pickpos # where on the ball the mouse was pick = mouse.pick # pick is now the weight object (nonzero) scene.cursor.visible = 0 # make cursor invisible elif mouse.drop: # released the mouse button at end of drag pick = None # end dragging (None is False) scene.cursor.visible = 1 # cursor visible again weightmoved = True
if pick: new_pos = scene.mouse.project(normal=(0,0,1)) # project onto xy plane if new_pos != drag_pos: # if the mouse has moved since last position pick.pos.x += new_pos.x - drag_pos.x # offset for where the weight was clicked # uncomment next 2 lines to limit range spring can be pulled or compressed #if pick.pos.x < -.35: pick.pos.x = -.35 #if pick.pos.x > .35:  pick.pos.x = .35  spring.displacement = pick.pos spring.axis = relaxedlength + spring.displacement  drag_pos = new_pos # update drag position message = &quot;Springs behave according to Hooke's Law only if&quot; message += &quot;\nthey aren't stretched or compressed too far.&quot; message += &quot;\nTry no more than about 35 centimeters for realistic results.&quot; message += &quot;\ndisplacement: %.2f meters&quot; % spring.displacement.x  mylabel.text = message
########################################################################################## # # PULL AND RELEASE THE WEIGHT, THEN GO THRU THE LOOP # ########################################################################################## spring.displacement = weight.pos # the weight starts at (0,0,0) and is attached to spring spring.axis = relaxedlength + spring.displacement finished = False # this will always be false so it's an infinite loop dt = .01  # seconds seconds = 0 # total time while not finished: rate(100) seconds += dt
# Calculate the spring force using Hooke's Law SpringForce = -spring.constant * spring.displacement # The spring force acts on the weight weight.force = SpringForce # move the weight from the applied force using  # Newton's 2nd law and the position equations weight.acceleration = weight.force/weight.mass weight.velocity += weight.acceleration * dt weight.pos += weight.velocity + .5 * weight.acceleration * dt**2 # calculate the new spring displacement spring.displacement = weight.pos # update the length of the spring spring.axis = relaxedlength + spring.displacement # message to the user message = &quot;VPython Video Tutorial: Spring Force&quot; message += &quot;\ndisplacement: %.1f&quot; % spring.displacement.x  message += &quot;\nvelocity: %.3f&quot; % weight.velocity.x  message += &quot;\nacceleration: %.2f&quot; % weight.acceleration.x  message += &quot;\nforce: % .1f&quot; % weight.force.x mylabel.text = message
Demostración
Conclusiones Se puede programar aplicaciones en 3D con la ayuda del lenguaje Python y la extensión VPython
Recomendaciones Primero se debe instalar Python 2.5.2 y luego Vpython.
Bibliografía MARZAL, Andrés y GRACIA, Isabel (2003). Introducción a la programación con Python. Universidad de Jaume. Portal de Python. http://www.python.org  Portal de VPython. http://vpython.org  PANDO, Victor. Blog de Victor Pando. http://victorpando.blogspot.com
Muchas Gracias

Yudy Centeno M

  • 1.
    Taller de AplicacionesMóviles Docente: M.Sc. Víctor Pando Beltrán
  • 2.
    PRESENTACIÓN El presente trabajo del Curso de Taller de Aplicaciones Móviles, cuyo tema es Programación Vpython, lo realizamos con mucho esfuerzo ya que será en beneficio de nuestra formación Profesional, y al mismo tiempo espero que sea de su agrado los aportes, para mis compañeros y Profesores de la Instituto Superior Tecnológico Manuel Núñez Butrón, de esta ciudad de Juliaca, ya que en el futuro nos servirá como material de consulta para el mejor desenvolvimiento de nuestra formación profesional
  • 3.
    DEDICATORIA El presentetrabajo va dedicado a nuestros queridos padres por el apoyo que nos brindan en el transcurso de nuestros estudios profesionales
  • 4.
    Programación en 3DINTEGRANTES: CENTENO MAMANI, Yudy Marcelina MAMANI YUCRA, Vicky Yovana
  • 5.
    AGENDA Descripción delproyecto Fundamento teórico Diagrama de flujo Codificación Demostración Conclusiones y Recomendaciones Bibliografía
  • 6.
    Descripción del ProyectoEl programa que presentamos se trata de una aplicación en física pero con características en 3D.
  • 7.
    Fundamento Teórico PYTHON3D Es una lengua interpretada. El intérprete es la fuente abierta. Una gama buena de bibliotecas existe. Contenido [puesto] 1 Sobre Python 2 Clases tutoriales y Fuente 2.1 Dependiente de Biblioteca 2.1.1 bibliotecas de programa de juego Genéricas 2.1.2 bibliotecas de 3D 3 Eslabones Externos.
  • 8.
    SOBRE PYTHON 3D: Pythón se ha hecho un instrumento poderoso para el desarrollo animoso. Esto ha sido usado extensivamente en juegos comerciales, incluyendo la Fuerza de Libertad, la VÍSPERA En línea, la Civilización IV, Toontown En línea, los Piratas del caribeño En línea, el Templo de Mal Elemental, y el Campo de batalla 2 (así como 2142).
  • 9.
    LA VENTAJA PRIMARIADEL PYTHON: Consiste en que es muy rápido desarrollarse en. La escritura del código de python típicamente toma una fracción del tiempo que esto toma para escribir el equivalente C el código. Se ha estimado que esto es 5 a 10 veces más rápido para escribir un programa en el Python que C. Esto puede cortar meses o años del tiempo de desarrollo de un proyecto. Hay también un cuerpo significativo de código de biblioteca que maneja la interpretación de 2D y de 3D de gráficos.
  • 10.
    LA DESVENTAJA PRIMARIADEL PYTHON: Generalmente bastante rápido para cálculos complejos (como la física de 3D). Los juegos más complejos que usan el python 3D. descargan unas subrutinas a C, sobre un como - la base necesaria, o usan una existencia C la biblioteca (como la ODA para la física). La mayor parte de reveladores que intentan esta mezcla son un entusiasta de ello: el resultado es un juego que puede ser desarrollado en la velocidad de pitón, pero que corre en la velocidad de C en cualquier parte doMezclando el python con C, el impacto sobre la velocidad depende cuánto del tiempo es gastado(pasado) ejecutando la lógica de Python contra cuanto del tiempo es gastado(pasado) en bibliotecas C. La lógica de Python puede ser 10-100 veces más despacio que C. Le recomiendan que el código crítico (cálculos de la matriz, manipulaciones &quot; para cada pixel &quot;, la gráfica de 3D, etc.) estar en bibliotecas C.
  • 11.
    PYTHON 3D Lohace fácil al interfaz con C; el Python de Empujón lo hace fácil al interfaz con C ++. Es también posible usar Pyrex, una lengua C/Python híbrida que lo hace en particular fácil para integrarse con bibliotecas C, y también hace posible de escribir el código de C-velocidad en una lengua Parecida a un pitón. Además el TRAGO fácilmente permite a un revelador para abrigarse C/C ++ funciones para el empleo con muchas lenguas scripting incluyendo el Python
  • 12.
    PYTHON Generalmente esconsiderado una lengua limpiamente fácil para aprender. usted encontrará sus rasgos familiares: usted sólo tendrá que gastar(pasar) una hora en las clases tutoriales Python.org para ser capaz de usarlo. El juego de rasgo del python incluye la lista poderosa y la manipulación de cuerda, mesas, juegos, y una biblioteca importante de funciones de utilidad como la serialización, XML el análisis, la interconexión, expresiones regulares, etcétera, etcétera. La matriz y la manipulación vector son incluidas con el Python Numérico. Bibliotecas muy de alta calidad de 3D de gráficos están también disponibles. Por lo general, todas estas bibliotecas son escritas en y funcionan en la velocidad de C.
  • 13.
    UNA VENTAJA CLAVEDE PYTHON 3D Consiste en que es relativamente fácil para no programados para leer. Esto lo hace conveniente como una lengua scripting. Por ejemplo en una RPG usted podría construir la parte principal del juego en C ++, pero escribir escrituras (donde los comerciantes van de noche, lo que el NPCS dice, como el arrastra(canturrea) el paseo hacia adelante y hacia atrás) en el Python.
  • 14.
    UNA VENTAJA CLAVEDE PYTHON 3D Para concluir esta lengua es muy útil mientras usted no lo pide hacer lo que esto hace lo peor (el cálculo sobre juegos de datos grandes): tales tareas deberían ser descargadas a C. Allí existe un instrumento, Psyco, que estimula a su programa sin necesitar que alguno vuelva a escribir. Todo que usted tiene que hacer es la importación ello al principio de su código. La desventaja principal consiste en que Psyco sólo corre sobre plataformas x86-compatibles en este momento.
  • 15.
    UNA VENTAJA CLAVEDE PYTHON 3D Si usted planifica el Python de utilización para el desarrollo animoso usted también podría querer pensar mirar el Rubí aunque usted encuentre que el Pythón es más rápido (Todas las Lenguas Comparadas, el Pitón contra el Rubí). Tanto las lenguas tienen su encima de - como inconvenientes, tan escoja sabiamente. [revisión] Clases tutoriales y Fuente
  • 16.
    UNA VENTAJA CLAVEDE PYTHON 3D Dependiente de Biblioteca (revisión) bibliotecas de programa de juego Genéricas Pygame una envoltura SDL para Pitón y las Utilidades Pygame de más Phil PGU. PGU proporciona una colección de instrumentos y bibliotecas que realzan(mejoran) Pygame. Los instrumentos incluyen a un redactor de azulejo y un redactor de nivel (el azulejo, isométrico, hexagonal). GUI realces(mejoras) incluyen gui completo, la interpretación de HTML, la disposición de documento, y la interpretación de texto. Las bibliotecas incluyen un duendecillo y el motor de azulejo (el azulejo, isométrico, hexagonal), un motor estatal, un temporizador, y un alto sistema de cuenta.
  • 17.
    UNA VENTAJA CLAVEDE PYTHON 3D Eslabones Externos Python.org la página de pitón Principal, incluida descargan del intérprete y la documentación. Rabbyt una biblioteca de Duendecillo rápida para Pitón con desarrollo animoso en mente. Con Rabbyt Anims, aún viejas tarjetas de gráficos pueden producir las animaciones muy rápidas de 2,400 o más duendecillos que manejan la posición, la rotación, el escalamiento, y colorear simultáneamente. Pyrex Pyrex le deja escribir el código que mezcla el Pitón y datos C escriben cualquier modo que usted quiere, y lo compila en una extensión C para el Pitón. aumente(empuje) el pitón:: un modo conveniente de combinar C ++ y el código de Pitón.
  • 18.
    UNA VENTAJA CLAVEDE PYTHON 3D Un modo conveniente de combinar C ++ y código de Pitón. El TRAGO Simplificó la Envoltura y el Generador de Interfaz es un instrumento que fácilmente permite a un revelador para abrigarse C/C ++ funciones para el empleo con lenguas scripting. Corrientemente apoya el Pitón, Perl, y Tcl. Jython puesta en práctica Javanesa de pitón. Psyco un módulo que aumenta(empuja) la velocidad de programas de pitón. Planche el Pitón una puesta en práctica alternativa de pitón para .NET
  • 19.
    UNA VENTAJA CLAVEDE PYTHON 3D Abucheo: Una lengua parecida a un pitón para .NET y Mono. Agradable para el desarrollo animoso porque estáticamente es escrito y controla tan rápido como C * el código. Empleo con el Marco Tao para OpenGL o sea Manejado DirectX. PyOpenGL una encuadernación a OpenGL PyODE una encuadernación al Motor de Dinámica Abierto, una física abierta de la fuente y motor de colisión. Torcido una biblioteca versátil conectada a una red con mucha Colección de Software de 3D de Pitón de rasgos Tranquilo se vincula a vario Pitón el 3D de Pitón de bibliotecas de 3D y relacionado con el juego.
  • 20.
  • 21.
    Codificación #En esteepisodio modelamos el comportamiento de una primavera con #arreglo a la Ley de Hooke y eche un vistazo a arrastrar y soltar objetos #en VPython. from __future__ import division from visual import * print&quot;&quot;&quot; Spring Force: Hooke's Law Force = -Spring Constant * Spring Displacement F = -kx The program models the motion of weight attached to a spring after the weight is pulled (stretching the spring) and released. Friction is ignored in this model so once started the system never stops oscillating back and forth. &quot;&quot;&quot;
  • 22.
    ########################################################################################## # #INITIALIZE WINDOW & DECLARATIONS # ########################################################################################## scene.range = vector(1,1,1) scene.center = vector(0,0,0) scene.width = 800 scene.height = 600
  • 23.
    ########################################################################################## # #CREATE SPRING, WEIGHT & LABEL OBJECTS # ########################################################################################## relaxedlength = vector(.60,0,0) # length of spring when it isn't stretched or compressed spring = helix(pos=(-.75,0,0),axis=relaxedlength, radius=.1,coils=8,thickness=.01,color=color.green) spring.constant = 2 # k weight = box(pos=(0,0,0),size=(.3,.3,.3),color=color.yellow) weight.mass = 10 # kg weight.velocity = vector(0,0,0) weight.acceleration = vector(0,0,0) weight.force = vector(0,0,0) frictionlessSurface = box(size=(2,.02,.5),pos=(0,-.16,0)) wall = box(size=(.04,.5,.3),pos=(-.77,.1,0),color=color.red) mylabel = label(pos=(0,.4,0)) mylabel.text = &quot;DRAG WEIGHT TO\nSTART&quot;
  • 24.
    # WAIT FORUSER TO DRAG THE WEIGHT # ########################################################################################## pick = 0 weightmoved = False while not weightmoved: if scene.mouse.events: mouse = scene.mouse.getevent() # obtain drag or drop event if mouse.drag and mouse.pick == weight: # if clicked on the weight drag_pos = mouse.pickpos # where on the ball the mouse was pick = mouse.pick # pick is now the weight object (nonzero) scene.cursor.visible = 0 # make cursor invisible elif mouse.drop: # released the mouse button at end of drag pick = None # end dragging (None is False) scene.cursor.visible = 1 # cursor visible again weightmoved = True
  • 25.
    if pick: new_pos= scene.mouse.project(normal=(0,0,1)) # project onto xy plane if new_pos != drag_pos: # if the mouse has moved since last position pick.pos.x += new_pos.x - drag_pos.x # offset for where the weight was clicked # uncomment next 2 lines to limit range spring can be pulled or compressed #if pick.pos.x < -.35: pick.pos.x = -.35 #if pick.pos.x > .35: pick.pos.x = .35 spring.displacement = pick.pos spring.axis = relaxedlength + spring.displacement drag_pos = new_pos # update drag position message = &quot;Springs behave according to Hooke's Law only if&quot; message += &quot;\nthey aren't stretched or compressed too far.&quot; message += &quot;\nTry no more than about 35 centimeters for realistic results.&quot; message += &quot;\ndisplacement: %.2f meters&quot; % spring.displacement.x mylabel.text = message
  • 26.
    ########################################################################################## # #PULL AND RELEASE THE WEIGHT, THEN GO THRU THE LOOP # ########################################################################################## spring.displacement = weight.pos # the weight starts at (0,0,0) and is attached to spring spring.axis = relaxedlength + spring.displacement finished = False # this will always be false so it's an infinite loop dt = .01 # seconds seconds = 0 # total time while not finished: rate(100) seconds += dt
  • 27.
    # Calculate thespring force using Hooke's Law SpringForce = -spring.constant * spring.displacement # The spring force acts on the weight weight.force = SpringForce # move the weight from the applied force using # Newton's 2nd law and the position equations weight.acceleration = weight.force/weight.mass weight.velocity += weight.acceleration * dt weight.pos += weight.velocity + .5 * weight.acceleration * dt**2 # calculate the new spring displacement spring.displacement = weight.pos # update the length of the spring spring.axis = relaxedlength + spring.displacement # message to the user message = &quot;VPython Video Tutorial: Spring Force&quot; message += &quot;\ndisplacement: %.1f&quot; % spring.displacement.x message += &quot;\nvelocity: %.3f&quot; % weight.velocity.x message += &quot;\nacceleration: %.2f&quot; % weight.acceleration.x message += &quot;\nforce: % .1f&quot; % weight.force.x mylabel.text = message
  • 28.
  • 29.
    Conclusiones Se puedeprogramar aplicaciones en 3D con la ayuda del lenguaje Python y la extensión VPython
  • 30.
    Recomendaciones Primero sedebe instalar Python 2.5.2 y luego Vpython.
  • 31.
    Bibliografía MARZAL, Andrésy GRACIA, Isabel (2003). Introducción a la programación con Python. Universidad de Jaume. Portal de Python. http://www.python.org Portal de VPython. http://vpython.org PANDO, Victor. Blog de Victor Pando. http://victorpando.blogspot.com
  • 32.