Prof. Luiz Fernando Martha
e-mail: lfm@tecgraf.puc-rio.br
Pontifícia Universidade Católica do Rio de Janeiro - PUC-Rio -
Departamento de Engenharia Civil e Ambiental
Prof. André Maués Brabo Pereira
e-mail: andremaues@id.uff.br
Universidade Federal Fluminense - UFF
Horário
Geral
Aulas
Aula 01 - 06/mar/2026 - Apresentação do ambiente de desenvolvimento e do curso.
Apresentação do ambiente de desenvolvimento – Python, Visual Studio Code e Qt.
Desenvolvimento de programas simples com o ambiente:
Programa muito simples "Hello World" em Python usando Qt 5:
Instruções para criação do programa.
Arquivo do programa.
Programa simples em Python usando Qt 5 para efetuar a soma de dois números:
Instruções para criação do programa.
Arquivo do programa.
Introdução à computação gráfica para desenvolvimento de programas de simulação gráfica de problemas de engenharia.
Aula 02 - 20/mar/2026 - Desenvolvimento de uma calculadora RPN (console) em Python e Introdução à Programação Orientada a Objetos.
Python basics: array, list and class (baseado nos vídeos de Amanda Brandão - Canal no YouTube - Python para iniciantes).
Calculadora RPN: Programa em Python criado com o Visual Studio Code para efetuar operações algébricas entre números inteiros uma calculadora funcionando com console usando RPN:
Instruções para criação do programa.
Versão do programa com pilha implementada como array.
Versão do programa com pilha implementada como lista.
Versão do programa com calculadora como herança de pilha.
Modelagem Orientada a Objetos da calculadora RPN.
Fundamentos de Orientação a Objetos e UML, Danielle Duque Estrada Pacheco, capítulo 3 de Estruturas de Dados
Topológicas para Modelagem Geométrica Bidimensional de Problemas de Engenharia, Projeto Final de Graduação, Universidade Federal Fluminense -
Departamento de Engenharia Civil, 2011.
Trabalho 1: Calculadora RPN GUI com Qt.
Qt Widgets and layouts.
Aula 03 - 27/mar/2026 - Visualização bidimensional com OpenGL. Transformações geométricas 2D. Transformação Window-Viewport.
Roteiro para criação de um programa simples em Python para desenho 2D usando Visual Studio Code, Qt 5 e OpenGL.
Programa MyGLDrawer.
Transformações geométricas 2D - Transformação Window-Viewport.
Chap. 4: World Windows, Viewports & Clipping: notas de aula do
Prof. Abel Gomes, Department of Computer Science, University of Beira Interior, Portugal.
Aula 04 - 17/abr/2026 - Tratamento de cor. Padrão/biblioteca gráfica OpenGL. Programação em um ambiente gráfico interativo dirigido por eventos. Paradigma de signals & slots do Qt.
Computação Gráfica - Cor & OpenGL.
Programação Orientada a Eventos em Sistemas de Interfaces com o Usuário.
Qt: Paradigma de Signals & Slots.
Qt object model and the signal slot concept.
Aula 05 - 08/mai/2026 - Eventos de mouse em canvas.
Programa simples para entendimento de eventos de mouse em canvas OpenGL usando Qt.
Explicação do programa simples.
Executável da solução do programa simples.
Representação digital de curvas (introdução).
Aula 06 - 15/mai/2026 - Representações digitais de curvas.
Representação digital de curvas (continuação).
Trabalho 3: Coleta interativa de curvas.
Aula 07 - 26/mai/2026 - 16h30 - Introdução à Geometria Computacional. Tesselagem de regiões bidimensionais.
Introdução à Geometria Computacional.
Geometria Computacional: algoritmos utilizados.
Programa para demonstrar a necessidade da tesselagem.
Aula 08 - 02/jun/2026 - 16h30 - Introdução à Geometria Computacional (cont.). Algoritmos de interseção de segmentos de reta.
Introdução à Geometria Computacional.
Geometria Computacional: algoritmos utilizados.
Aula 09 - 12/mai/2026 - Introdução à Geometria Computacional (cont.). Teste de proximidade e inclusão de pontos em regiões.
Introdução à Geometria Computacional.
Geometria Computacional: algoritmos utilizados.
Aula 10 - 26/jun/2026 - 16h30 - Geração de malhas de elementos finitos: algoritmos de mapeamento, avanço de fronteiras e triangulação Delaunay.
Geração de malhas de elementos finitos.
Mesh Generation, Mark Filipiak -
Edinburgh Parallel Computing Centre - The University of Edinburgh - Nov. 1996.
Mesh Generation - Summary.
Delaunay Triangulation -
From Wikipedia, the free encyclopedia, Jun. 2017: https://en.wikipedia.org/wiki/Delaunay_triangulation.
Mapeamento Transfinito em Excel - contribuição de Rui Francisco Pereira M L da Cruz.
Aula 11 - 30/jun/2026 - Transformações geométricas para visualização 3D e modelo de câmera.
Transformações geométricas para visualização 3D.
OpenGL: programa de projeção 3D.
Modelo de Câmera do OpenGL.
OpenGL Transformation.
Programa simples para manipulação de visualização 3D com o OpenGL.
Explicação do programa simples.
Executável da solução do programa simples.
Aula 12 - 03/jul/2026 - Transformações geométricas para controle de visualização 3D.
Transformações geométricas para visualização 3D (outra abordagem).
Transformações geométricas para controle de visualização 3D.
Explicação do Trabalho 6.
Aula 13 - 10/jul/2026 - Modelagem de sólidos manifold e de subdivisões planares. Estruturas de dados topológicas manifold. Estrutura de dados Half-edge.
Trabalhos
Serão propostos trabalhos individuais durante o curso conforme divulgado no programa mostrado abaixo.
Trabalho 1: Calculadora RPN GUI com Qt.
Enunciado do primeiro trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Trabalho 2: Visualização bidimensional com Qt e OpenGL.
Enunciado do segundo trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Trabalho 3: Coleta interativa de curvas.
Enunciado do terceiro trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Trabalho 4: Modelador geométrico com interseções de curvas e criação explícita de regiões.
Enunciado do quarto trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Trabalho 5: Geração de malhas (cancelado).
Enunciado do quinto trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Trabalho 6: Visualização 3D.
Enunciado do sexto trabalho.
Código do programa e arquivos de projeto.
Executável da solução do trabalho.
Escopo e Programa
Introdução a conceitos e algoritmos de Computação Gráfica para alunos que pretendem desenvolver e customizar software técnico-científico.
Cronograma das aulas
|
Assunto |
Trabalho (aplicação) |
|||
|
1 |
06/mar |
6ª f |
Apresentação do ambiente de desenvolvimento – Python, Visual Studio Code e Qt. Desenvolvimento de programas simples no ambiente: hello world e soma de dois números. Introdução a Computação Gráfica para Engenharia. |
|
|
|
13/mar |
6ª f |
AULA CANCELADA |
|
|
2 |
20/mar |
6ª f |
Desenvolvimento de uma calculadora RPN (console) em Python. Introdução a Programação Orientada a Objetos. Modelagem Orientada a Objetos da calculadora RPN. |
Trabalho 1: Calculadora RPN GUI com Qt |
|
3 |
27/mar |
6ª f |
Visualização bidimensional com OpenGL. Programa gráfico simples em Qt e OpenGL. Transformações geométricas 2D. Transformação Window-Viewport. |
Trabalho 2: Visualização bidimensional com Qt e OpenGL |
|
|
03/abr |
6ª f |
FERIADO SEMANA SANTA |
|
|
|
10/abr |
6ª f |
AULA CANCELADA |
|
|
4 |
17/abr |
6ª f |
Tratamento de cor. Padrão/biblioteca gráfica OpenGL. Programação em um ambiente gráfico interativo dirigido por eventos. Paradigma de signals & slots do Qt. |
|
|
|
24/abr |
6ª f |
RECESSO FERIADO SÃO JORGE |
|
|
|
01/mai |
6ª f |
FERIADO DIA DO TRABALHO |
|
|
5 |
08/mai |
6ª f |
Eventos de mouse em canvas. |
|
|
6 |
15/mai |
6ª f |
Representações digitais de curvas. |
Trabalho 3: Coleta interativa de curvas |
|
7 |
26/mai |
3ª f |
Representações digitais de curvas (cont.). Introdução à Geometria Computacional. Tesselagem de regiões bidimensionais. |
|
|
8 |
02/jun |
3ª f |
Introdução à Geometria Computacional (cont.). Algoritmos de interseção de segmentos de reta. |
Trabalho 4: Modelador geométrico com interseções de curvas e criação explícita de regiões |
|
|
05/jun |
6ª f |
RECESSO DE CORPUS CHRISTI |
|
|
9 |
12/jun |
6ª f |
Introdução à Geometria Computacional (cont.). Teste de proximidade e inclusão de pontos em regiões. |
|
|
|
19/jun |
6ª f |
NÃO TEVE AULA |
|
|
10 |
26/jun |
6ª f |
Geração de malhas de
elementos finitos: algoritmos de mapeamento, avanço de fronteiras e
triangulação de Delaunay. |
Trabalho 5: Geração de malhas (cancelado) |
|
11 |
30/jun |
3ª f |
Transformações geométricas para visualização 3D e modelo de câmera. |
|
|
12 |
03/jul |
6ª f |
Transformações geométricas para controle de visualização 3D. |
Trabalho 6: Visualização 3D |
|
13 |
10/jul |
6ª f |
Modelagem de sólidos manifold e de subdivisões planares. Estruturas de dados topológicas manifold. Estrutura de dados Half-edge. |
|
Critério de aprovação
Grau Final (GF) é obtido pela média aritmética dos trabalhos (todos com peso igual).
Se GF ≥ 6,0, o aluno será considerado aprovado.
Caso contrário o aluno estará reprovado.
Bibliografia
Python Tutorials: https://www.tutorialsteacher.com/python.
Amanda Brandão - Canal no YouTube - Python para iniciantes: https://youtube.com/playlist?list=PL25cWjt4YLO3v3UavjkrgAK-jnPjDSBCD.
Allen Downey, Pense em Python, Novatec, 2016.
Nilo Ney Coutinho Menezes, Introdução à Programação com Python, Novatec, 2014.
David Ascher e Mark Lutz, Aprendendo Python, Bookman, 2007.
Vittorio Lora. Python for Civil and Structural Engineers: https://python4civil.weebly.com, acessado em 23/junho/2022.
Waldemar Celes, Renato Cerqueira e José Lucas Rangel, Introdução a Estrutura de Dados – Com técnicas de programação em C, 2ª edição, Editora GEN LTC, 2022.
Jonas de Miranda Gomes e Luiz Velho, Computação Gráfica, Volume 1, Série de Computação e Matemática, IMPA, 1998.
Rogers, D.F., Adams, J.A.; Mathematical Elements for Computer Graphics, Second Edition, McGraw-Hill International Editions, Computer Series, New York, 1990.
Rogers, D.F.; Procedural Elements for Computer Graphics, McGraw-Hill International Editions, Computer Series, New York, 1985.
Foley, J.D., van Dam, A., Feiner, S., Hughes, J.; Computer Graphics: Principles and Practice, Second Edition in C, Addison-Wesley, 1995.
Arlindo Cardarett Vianna, Computação Gráfica, Tecgraf/PUC-Rio, Apostila, Ago. 1996.
Marcos Chataignier de Arruda, Modelagem Geométrica Não-manifold, PUC-Rio - Departamento de Engenharia Civil, Apêndice da Dissertação de Mestrado: Operações booleanas com sólidos compostos representados por fronteira, Jan. 2005.
Danielle Duque Estrada Pacheco, Estruturas de Dados Topológicas para Modelagem Geométrica Bidimensional de Problemas de Engenharia, Projeto Final de Graduação, Universidade Federal Fluminense - Departamento de Engenharia Civil, 2011.
Sistema de interface Qt:
Qt documentation.
OpenGL Programming Guide, Addison-Wesley Publishing Company, 1996.
OpenGL Conceitos Básicos, por Waldemar Celes.
Última atualização:30/junho/2026 por
Luiz Fernando Martha