21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

296 Blender

# -*- coding: latin1 -*-

from math import *

from Blender.Draw import *

from Blender import BGL, Window, Mesh, Scene

class Buttons:

"""

Classe com para armazenar os botões para que

os valores possam ser usados por outras rotinas

sem usar variáveis globais

"""

# Equação

formula = Create('cos(x) - sin(3*x)')

# Variação

delta = Create(.1)

def interface():

"""

Função que desenha a interface

"""

# Pega o tamanho da janela

x, y = Window.GetAreaSize()

# Desenha caixa de texto

# Parâmetros: rótulo, evento, x, y, largura, altura, valor inicial,

# tamanho máximo do texto, tooltip

Buttons.formula = String('Fórmula: ', 0, 10, y - 30, 300, 20,

Buttons.formula.val, 300, 'Entre com uma expressão Python')

# Desenha caixa de número

# Parâmetros: rótulo, evento, x, y, largura, altura, valor inicial,

# mínimo, máximo, tooltip

Buttons.delta = Number('Delta: ', 0, 10, y - 60, 300, 20,

Buttons.delta.val, .01, 1., 'Entre com a variação')

# Desenha os botões

# Parâmetros: texto do botão, evento, x, y, largura, altura, tooltip

PushButton('Ok', 1, 10, y - 90, 100, 20, 'Aplica as mudanças')

PushButton('Fim', 2, 10, y - 120, 100, 20, 'Termina o programa')

# Comandos OpenGL através da BGL

BGL.glClearColor(.7, .7, .6, 1)

BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)

def events(evt, val):

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!