Foros del Web » Programando para Internet » Python »

Pygame: Pequeño graficador polar

Estas en el tema de Pygame: Pequeño graficador polar en el foro de Python en Foros del Web. Aquí esta, como lo prometí. Un pequeño graficador pero esta vez con funciones polares. Ya se que exisisten herramientas como GNU/Plot que nos simplifican la ...
  #1 (permalink)  
Antiguo 03/05/2009, 18:16
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Pygame: Pequeño graficador polar

Aquí esta, como lo prometí. Un pequeño graficador pero esta vez con funciones polares. Ya se que exisisten herramientas como GNU/Plot que nos simplifican la vida a la hora de graficar, pero nunca esta demas hacer un programita de estos para agarrar practica.

main.py
Código python:
Ver original
  1. #!/usr/bin/env python
  2. #coding: UTF-8
  3. import pygame
  4. import math
  5. from math import sin, cos, sinh, cosh, tan, tanh, pi, e, degrees, exp, log, log10, pow, radians, sqrt
  6. from pygame import K_LEFT, K_RIGHT, K_UP, K_DOWN, K_ESCAPE
  7.  
  8. blue = (0, 0, 255)
  9. black = (0, 0, 0)
  10.  
  11. def init():
  12.     pygame.init()
  13.  
  14.     size = width, height = 640, 480
  15.     screen = pygame.display.set_mode(size)
  16.     pygame.display.set_caption("Graficadora polar")
  17.  
  18.     return screen
  19.  
  20. def translate((t, r)):
  21.     x = r*cos(radians(t))
  22.     y = r*sin(radians(t))
  23.     x += 320
  24.     y += 240
  25.     return (x, y)
  26.    
  27. screen = init()
  28.  
  29. dt = 0.5
  30. t = 0
  31. def r(t):
  32.     t = radians(t)
  33.     return 200*sin(4*t)
  34.        
  35. while 1:
  36.     for event in pygame.event.get():
  37.         if event.type == pygame.QUIT:
  38.             exit()
  39.    
  40.     keyboard = pygame.key.get_pressed()
  41.     if keyboard[K_ESCAPE]:
  42.         exit()
  43.    
  44.     try:
  45.         start_pos = (int(t), int(r(t)))
  46.         end_pos = (int(t + dt), int(r(t + dt)))
  47.         t += dt
  48.     except ZeroDivisionError:
  49.         break
  50.     if t > 360:
  51.         t = 0
  52.     pygame.draw.line(screen, blue, translate(start_pos), translate(end_pos))
  53.     pygame.display.flip()
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:26.