Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: reconFito en 1 Abril 2020, 06:01 am



Título: [Python3-Graficador de funciones basico]
Publicado por: reconFito en 1 Abril 2020, 06:01 am
Hola que tal todos este es un muy simple graficador de funciones usando el módulo turtle.

Código
  1. def graficar_funciones2D(*args):
  2.    """
  3.    El primer vector se tomara como las coordenadas de inicio de la gráfica
  4.    si no las proporcionas por defecto es (0, 0).
  5.    """
  6.  
  7.    # ----------- Workspace --------------
  8.    WIDTH = 700
  9.    HEIGHT = 500
  10.    wn = Screen()
  11.    wn.title("Vectores y gráficas básicas")
  12.    wn.setup(WIDTH, HEIGHT)
  13.    wn.screensize(WIDTH-10, HEIGHT-10)
  14.    wn.bgcolor("#FFFDF9")
  15.  
  16.    pen = Turtle()
  17.    pen.pen({"pensize": 2,
  18.             "shown": False,
  19.             "speed": -1})
  20.  
  21.    # ----------- global variables --------------
  22.    dot_radio = 5
  23.    color = "red"
  24.    wn_width = wn.window_width()
  25.    wn_height = wn.window_height()
  26.  
  27.    """ # Descomenta esto si quieres ver un fondo cuadriculádo
  28.    # ----------- grid --------------
  29.    pen.pu()
  30.    pen.goto(-wn_width, wn_height)
  31.    pen.seth(0)
  32.    pen.pd()
  33.    for i in range(0, wn_height+wn_height, 10):
  34.        pen.pencolor("#daafaf")
  35.        pen.pensize(1)
  36.        pen.fd(wn_width)
  37.        pen.up()
  38.        pen.goto(-wn_width, (wn_height)-i)
  39.        pen.down()
  40.        pen.fd(wn_width)
  41.  
  42.    pen.pu()
  43.    pen.goto(-wn_width, wn_height)
  44.    pen.seth(270)
  45.    pen.pd()
  46.    for j in range(0, wn_width+wn_width, 10):
  47.        pen.fd(wn_height)
  48.        pen.up()
  49.        pen.goto(-wn_width+j, wn_height)
  50.        pen.down()
  51.        pen.fd(wn_height)
  52.    """
  53.  
  54.    # ----------- Graph --------------
  55.    pen.up()
  56.    pen.home()
  57.    pen.pencolor("#090909")
  58.    pen.pd()
  59.    for i in range(4):
  60.        pen.fd(wn_width)
  61.        pen.bk(wn_width)
  62.        pen.lt(90)
  63.  
  64.    # ----------- Points --------------
  65.    vector = args
  66.    pen.up()
  67.    pen.goto(vector[0][0], vector[0][1])
  68.    pen.pd()
  69.    for values in vector:
  70.        # pen.up()  # Descomenta esta linea si no deseas ver el trazo del dibujo
  71.        pen.goto(values[0], values[1])
  72.        # pen.pd()  # Descomenta esta linea si no deseas ver el trazo del dibujo
  73.        pen.dot(dot_radio, color)
  74.        # pen.write(tuple(values), False, "right", ("tahoma", 7, "italic"))
  75.    wn.listen()
  76.    wn.onkeypress(lambda: wn.bye(), "space")
  77.    wn.mainloop()
  78.  
  79.  
[/size][/size][/size]