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
Prof. André Maués Brabo Pereira
e-mail: andremaues@id.uff.br
Universidade Federal Fluminense - UFF -
Departamento de Engenharia Civil
Horário e sala de aula
Download
Bibliotecas dinâmicas (DLL) para execução de programas Qt (versão 5.4.0) fora do ambiente de desenvolvimento VisualStudio2013.
Essas bibliotecas devem ficar no mesmo diretório do executável ou em algum diretório no caminho do ambiente:
Versão Debug: civ2802-Qt5d_dll.zip.
Versão Release: civ2802-Qt5_dll.zip.
Notas sobre programação em C:
Fundamentos de Programação Estruturada em C; Funções, Variáveis e Utilização de Memória em C; Estruturas e
Alocação de Memória em C.
Notas de aula e apostilas:
Aula 01 - 14/mar/2019 -
Apresentação do ambiente de desenvolviento - Visual Studio Community 2013 e Qt 5.4 - e
Introdução a computação gráfica para engenharia.
Hello World!: programa simples criado com o plugin do Qt 5.4.0 para o Visual Studio Community 2013:
Instruções para criação do programa.
Soma: programa simples criado com o plugin do Qt 5.4.0 para o Visual Studio Community 2013 para efetuar a soma de dois números:
Instruções para criação do programa.
Aula 02 - 21/mar/2019 -
Introdução à computação gráfica para desenvolvimento de programas de simulação gráfica de problemas de engenharia.
Introdução à Computação Gráfica.
Desenvolvimento de uma calculadora RPN em C++.
Calculadora RPN: programa criado com o Visual Studio 2013 para efetuar operações algébricas entre números, uma calculadora funcionando com console usando RPN.
Instruções para criação do programa.
Qt Widgets and layouts.
Aula 03 - 28/mar/2019 - Introdução a Programação Orientada a Objetos.
Modelagem Orientada a Objetos da calculadora RPN.
Modelagem Orientada a Objetos.
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.
Aula 04 - 04/abr/2019 - Visualização bidimensional com OpenGL. Transformações geométricas 2D. Transformação Window-Viewport
Roteiro para criação de um programa simples para desenho 2D usando Visual Studio 2013, Qt 5.4 e OpenGL.
Transformações geométricas 2D - Transformação Window-Viewport.
Aula 05 - 11/abr/2019 - 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.
Exemplo simples de funcionamento do paradigma Signals & Slots.
Qt object model and the signal slot concept.
Aula 06 - 02/mai/2019 - Eventos de mouse em canvas. Representações digitais de curvas.
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.
Aula 07 - 09/mai/2019 - Aula 08 - 16/mai/2019 - Introdução à Geometria Computacional. Tesselagem de regiões bidimensionais. Algoritmos de interseção de segmentos de reta. Precisão, Aritmética exata e adaptativa. Predicados da geometrica computacional: teste de proximidade e inclusão de pontos.
Introdução à Geometria Computacional.
Algoritmos para seleção (pick) de linhas e polígonos.
Aula 09 - 23/mai/2019 - 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.
Mapeamento Transfinito em Excel - contribuição de Rui Francisco Pereira M L da Cruz.
Aula 10 - 30/mai/2019 - Transformações geométricas para visualização 3D.
Transformações Geométricas para Visualização 3D.
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 11 - 06/jun/2019 - Aula 12 - 13/jun/2019 - Modelo de Câmera 3D e Controle de Visualização 3D.
Modelo de Câmera do OpenGL.
Controle de Visualização 3D e Transformações Geométricas para Visualização 3D.
OpenGL Transformation.
OpenGL: programa matrixModelView.
OpenGL: programa matrixProjection.
OpenGL: programa de projeção 3D.
Aula 13 - 27/jun/2019 - Modelagem geométrica (2-manifold e non-manifold). Estruturas de dados topológicas. Estrutura de dados Half-edge.
Trabalhos
Serão propostos trabalhos individuais durante o curso conforme divulgado no programa mostrado abaixo.
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.
Programa do curso:
Aula |
Assunto |
Trabalho |
||
1 |
14/mar |
5ª f |
Apresentação do ambiente de desenvolvimento - Visual Studio 2008 e Qt. Desenvolvimento de programa simples com o ambiente: soma de dois números. |
|
2 |
21/mar |
5ª f |
Introdução a Computação Gráfica para Engenharia. Desenvolvimento de uma calculadora RPN em C++ . |
Trabalho 1: Calculadora com Qt |
3 |
28/mar |
5ª f |
Introdução a Programação Orientada a Objetos. Modelagem Orientada a Objetos da calculadora RPN. |
|
4 |
04/abr |
5ª f |
Visualização bidimensional com OpenGL. Transformações geométricas 2D. Transformação Window-Viewport. |
|
5 |
11/abr |
5ª 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. |
Trabalho 2: Visualização bidimensional com Qt e OpenGL |
|
18/abr |
5ª f |
FERIADO SEMANA SANTA |
|
|
25/abr |
5ª f |
NÀO HAVERÁ AULA |
|
6 |
02/mai |
5ª f |
Eventos de mouse em canvas. Representações digitais de curvas. |
Trabalho 3: biblioteca de primitivas gráficas e coleta de curvas. |
7 |
09/mai |
5ª f |
Introdução à Geometria Computacional. |
|
8 |
16/mai |
5ª f |
Introdução à Geometria Computacional. Tesselagem de regiões bidimensionais.Algoritmos de interseção de segmentos de reta. Predicados da geometria computacional: teste de proximidade e inclusão de pontos. |
Trabalho 4: modelador geométrico com interseções de retas e criação explícita de regiões |
9 |
23/mai |
5ª f |
Geração de malhas de elementos finitos: algoritmos de mapeamento, algoritmos de avanço de fronteiras e algoritmos de triangulação Delaunay. |
|
10 |
30/mai |
5ª f |
Transformações geométricas para visualização 3D. |
Trabalho 5: geração de malhas |
11 |
06/jun |
5ª f |
Modelo de câmera 3D e controle de visualização 3D. |
|
12 |
13/jun |
5ª f |
Modelo de câmera 3D e controle de visualização 3D. |
Trabalho 6: visualização 3D |
|
20/jun |
5ª f |
FERIADO CORPUS CHRISTI |
|
13 |
27/jun |
5ª f |
Modelagem geométrica. Estruturas de dados topológicas. 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
Referência para C++ na internet: www.cplusplus.com.
Renato Borges e André Clinio, Programação Orientada a Objetos com C++.
B. Stroustrup, The C++ Programming Language, Addison-Wasley, 3rd edition, 2000.
B. Stroustrup, C++ A Linguagem de Programação, Bookman Companhia, 3a edição, 2000.
Marcio Santi, Curso de Programação III.
Waldemar Celes e Renato Cerqueira, Estrutura de Dados, Material da disciplina INF 1620 - Estrutura de Dados.
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.
Sistema gráfico OpenGL – The Industry's Foundation for High Performance Graphics: www.opengl.org.
OpenGL Conceitos Básicos, por Waldemar Celes.
Software utilizado no curso
Bibliotecas dinâmicas (DLL) para execução de programas Qt (versão 5.4.0) fora do ambiente de desenvolvimento VisualStudio2013.
Essas bibliotecas devem ficar no mesmo diretório do executável ou em algum diretório no caminho do ambiente:
Versão Debug: civ2802-Qt5d_dll.zip.
Versão Release: civ2802-Qt5_dll.zip.
Última atualização: 10/junho/2019 por Luiz Fernando Martha