21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

262 Imagens em três dimensões

# Desenha uma esfera sólida, com raio 0.5 e 128 divisões

# na horizontal e na vertical

glutSolidSphere(0.5, 128, 128)

# Força a execução dos comandos da OpenGL

glFlush()

# Inicializa a biblioteca GLUT

glutInit(argv)

# glutInitDisplayMode configura o modo de exibição

# GLUT_SINGLE define o buffer como simples

# (também pode ser duplo, com GLUT_DOUBLE)

# GLUT_RGB seleciona o modo RGB

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)

# Cria a janela principal

glutCreateWindow('Esfera')

# Configura a função callback que desenha na janela atual

glutDisplayFunc(display)

# Limpa a janela com a cor especificada

glClearColor(.25, .15, .1, 1.)

# Muda a matriz corrente para GL_PROJECTION

glMatrixMode(GL_PROJECTION)

# Carrega uma matriz identidade na matriz corrente

glLoadIdentity()

# Configurando os parâmetros para as fontes de luz

# GL_DIFFUSE define o parâmetro usado a luz difusa (no formato RGBA)

glLightfv(GL_LIGHT0, GL_DIFFUSE, [1., 1., 1., 1.])

# Os três parâmetros definem a posição da fonte luminosa

# O quarto define se a fonte é direcional (0) ou posicional (1)

glLightfv(GL_LIGHT0, GL_POSITION, [-5., 5., -5., 1.])

# Aplica os parâmetros de iluminação

glEnable(GL_LIGHTING)

# Inclui a fonte de luz 0 no calculo da iluminação

glEnable(GL_LIGHT0)

# Inicia o laço de eventos da GLUT

glutMainLoop()

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

Saved successfully!

Ooh no, something went wrong!