Caja Rotadora
Autor: Javier Araneda
Competencia: Desarrollo de Software (Nivel 2)
Asignatura: Programación II
Y al final el código de fuente termino siendo esto:
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 02 09:42:34 2015
@author: Javier
"""
from visual import *
import math
suelo=box(pos=(0,0,0),size=(100,1,30),color=color.green) #La linea
box=box(pos=(0,30,10),size=(50,30,20),color=color.red) #La caja.
angulo=1
ax=(1,0,0)
giro=0
cColor=True
while True:
rate(60)
if cColor:
if giro==360 or giro==-360 :
box.color=color.blue
cColor=False
giro=0
else:
if giro==360 or giro==-360 :
box.color=color.red
cColor=True
giro=0
box.rotate(angle=math.radians(angulo),axis=ax) #Hace rotar al objeto.
if scene.kb.keys:
k=scene.kb.getkey() # Caputra del teclado
if k=='y':
ax=(1,0,0)
if k=='x':
ax=(0,1,0)
if k=='z':
ax=(0,0,1)
if k=='a':
if angulo>0:
angulo=(-1)
giro=0
else:
angulo=(1)
giro=0
if angulo>0:
giro=giro-1
else:
giro=giro+1
print giro
Como se puede ver, es un programa corto, pero preciso, la función OBJETO.rotate() hace todo el trabajo, solo hay que entregarle los ángulos que que rotar y el eje.
----------------
Programa Funcionando.
Reflexión:
Esta es la magia de las librerías, No hay necesidad de reinventar la rueda, las librerías son herramientas capases de ayudarnos con las miles de funciones que las componen. Son herramientas poderosas a las cuales hay que sacarles provecho, Creo que no hay que tener miedo a usarlas ya que para algo las crearon.
Palabras clave: python, programación, visualPython, trabajo practico,Rotación.
Descripción de la actividad:
Este trabajo fue es laboratorio 5 de programación, con el profe Caro, usando la librería de VISUAL, para python. Se nos pidió crear un objeto caja de color rojo(con visual), el cual tenia estar sobre una linea y que con los botones X,Y,Z,A se cambiara la rotación en ese eje. con la letra A se invertía el giro. También cuando la caja caga diera una vuelta completa(360 grados) tenia que cambiar de color rojo a azul. Simple.
Solución:
Lo primero que hice fue investigar sobre la librería visualPython, la librería permite crear ciertos objetos, los cuales tienen una representación gráfica en 3d, cada objeto tiene, características(color, posición, angulo), así que con eso ya tenia la mitad difícil del trabajo hecha, como hacer que el objeto gire en los ángulos. Solo faltaba ver como hacer que reconociera los inputs (X,Y,Z,A). Para mi sorpresa visualPython tiene una función scene.kb.getkey(): , la cual captura la letra que se esta presionando en el momento. y la devuelve como una variable.Ya lo tenia todo.
Este trabajo fue es laboratorio 5 de programación, con el profe Caro, usando la librería de VISUAL, para python. Se nos pidió crear un objeto caja de color rojo(con visual), el cual tenia estar sobre una linea y que con los botones X,Y,Z,A se cambiara la rotación en ese eje. con la letra A se invertía el giro. También cuando la caja caga diera una vuelta completa(360 grados) tenia que cambiar de color rojo a azul. Simple.
Solución:
Lo primero que hice fue investigar sobre la librería visualPython, la librería permite crear ciertos objetos, los cuales tienen una representación gráfica en 3d, cada objeto tiene, características(color, posición, angulo), así que con eso ya tenia la mitad difícil del trabajo hecha, como hacer que el objeto gire en los ángulos. Solo faltaba ver como hacer que reconociera los inputs (X,Y,Z,A). Para mi sorpresa visualPython tiene una función scene.kb.getkey(): , la cual captura la letra que se esta presionando en el momento. y la devuelve como una variable.Ya lo tenia todo.
Y al final el código de fuente termino siendo esto:
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 02 09:42:34 2015
@author: Javier
"""
from visual import *
import math
suelo=box(pos=(0,0,0),size=(100,1,30),color=color.green) #La linea
box=box(pos=(0,30,10),size=(50,30,20),color=color.red) #La caja.
angulo=1
ax=(1,0,0)
giro=0
cColor=True
while True:
rate(60)
if cColor:
if giro==360 or giro==-360 :
box.color=color.blue
cColor=False
giro=0
else:
if giro==360 or giro==-360 :
box.color=color.red
cColor=True
giro=0
box.rotate(angle=math.radians(angulo),axis=ax) #Hace rotar al objeto.
if scene.kb.keys:
k=scene.kb.getkey() # Caputra del teclado
if k=='y':
ax=(1,0,0)
if k=='x':
ax=(0,1,0)
if k=='z':
ax=(0,0,1)
if k=='a':
if angulo>0:
angulo=(-1)
giro=0
else:
angulo=(1)
giro=0
if angulo>0:
giro=giro-1
else:
giro=giro+1
print giro
Como se puede ver, es un programa corto, pero preciso, la función OBJETO.rotate() hace todo el trabajo, solo hay que entregarle los ángulos que que rotar y el eje.
----------------
Programa Funcionando.
Reflexión:
Esta es la magia de las librerías, No hay necesidad de reinventar la rueda, las librerías son herramientas capases de ayudarnos con las miles de funciones que las componen. Son herramientas poderosas a las cuales hay que sacarles provecho, Creo que no hay que tener miedo a usarlas ya que para algo las crearon.
No hay comentarios.:
Publicar un comentario