1. Introdução Triangulação de Delaunay Algoritmo quadrático Métodos Utilizados Resultados...

Tamanho: px
Começar a partir da página:

Download "1. Introdução Triangulação de Delaunay Algoritmo quadrático Métodos Utilizados Resultados..."

Transcrição

1 1 Conteúdos 1. Introdução The Visualization Toolkit A Biblioteca VTK Conjuntos de Dados Organização do Volume de Dados A Estrutura de Classes do VTK Triangulação de Delaunay Algoritmo quadrático Métodos Utilizados Resultados Conclusão Apêndice... 23

2 2 1. Introdução O objecto de trabalho insere-se na área de visualização científica e consiste na exploração e aplicação do software VTK. Em particular serão focados métodos de triangulação e de manipulação de dados. Será usada a triangulação 2D de Delaunay a partir das ferramentas do vtk de forma a construir uma topologia a partir de pontos não estruturados de uma imagem. Para tal é feita a importação de uma imagem BMP e a obtenção das coordenadas dos pontos que a definem. A partir desses pontos criada uma estrutura de pontos sobre a qual será feita a triangulação. Serão ainda exploradas técnicas de visualização como sendo a inserção de texto e a renderização.

3 3 2. The Visualization Toolkit 2.1. A Biblioteca VTK O Visualization ToolKit é um sistema de software de código aberto para computação gráfica 3D, processamento de imagens, e visualização, usado por milhares de pesquisadores e investigadores em todo o mundo. Consiste numa biblioteca de classes em C++ e várias camadas de interfaces interpretadas, incluindo Tcl/Tk, Java, e Python, e suporta uma ampla variedade de algoritmos de visualização para diferentes tipos de dados. Também são implementadas técnicas de modelagem avançadas como modelagem implícita, redução de polígonos, suavização de malhas e triangulação de Delaunay. O projecto e a implementação da biblioteca foram fortemente influenciados pelos princípios de orientação a objectos, e o software foi instalado e testado em quase todas as plataformas baseadas em Unix e Windows. O modelo de programação do VTK adopta o paradigma de fluxo de dados. Nesse paradigma, módulos são conectados para formar uma rede que descreve um canal (pipeline) de processamento de dados. Os módulos executam operações algorítmicas sobre os dados enquanto eles fluem pelo pipeline. No modelo VTK há dois tipos básicos de objectos: objectos de processos e objectos de dados. Objectos de processo são os módulos do pipeline, e objectos de dados representam os dados nos vários estágios no pipeline. Essencialmente, o investigador está ciente apenas dos objectos de processos e os objectos de dados vivem entre os objectos de processo. Figura 2.1: Modelo VTK. Objectos de processos A, B e C são objectos fonte, filtro e mapeador, respectivamente. Objectos de processo são de três tipos: fontes, filtros e mapeadores (ver figura 2.1). Objectos fontes são encontrados no início do pipeline, e geram uma ou mais saídas de dados. Um objecto fonte pode ser um leitor para um tipo de arquivo particular ou pode gerar seu próprio dado, como o objecto vtkspheresource, que cria uma representação

4 4 (objecto de dados) de uma esfera poligonal. A saída desse objecto fonte pode então ser conectada à entrada de outro objecto de processo. O acto de conectar a entrada de um objecto de processo à saída de outro objecto de processo define como o pipeline está construído. Por exemplo, para conectar a saída do filtro A à entrada do filtro B, é usada a seguinte construção: B->SetInput( A->GetOutput( ) ); Como as conexões podem ser múltiplas (uma saída pode ser entrada de vários objectos), as conexões podem, de facto, tornarem-se numa rede (network) de visualização, em vez de um pipeline simples. Cada objecto de processo gera apenas uma saída. O pipeline ou rede termina com mapeadores. Um mapeador mapeia a sua entrada para a tela (render). Nesse estágio do pipeline, a entrada para o mapeador é a saída de algum filtro que gera dados geométricos (vtkpolydata). Os dados geométricos são objectos de dados como qualquer outro que representam malhas planares irregulares. De facto, há filtros que trabalham com dados geométricos, como algoritmos de triangulação (vtktrianglefilter). O mapeador é associado a um objecto chamado vtkactor, que representa um objecto geométrico e os seus atributos na cena. Informações num vtkactor incluem os atributos de aparência do objecto (vtkproperty) e sua localização no espaço. Como resultado, o investigador instancia pelo menos um vtkactor para cada mapeador no pipeline do VTK, e um mapeador para cada objecto geométrico que deverá ser renderizado. O investigador ajusta cada atributo de cada vtkactor e adiciona cada vtkactor a uma janela de renderização, usada por uma instância da classe de vtkrenderwindow. A janela resultante exibe todos os actores a ela associados. Uma das principais vantagens do VTK são os seus recursos para interacção com os gráficos 3D gerados. Tais recursos possibilitam que o usuário navegue através dessas imagens, e, consequentemente, através dos dados. A classe do VTK chamada vtkrenderwindowinteractor é a responsável por transformar eventos do rato e teclado em modificações aos actores e câmaras que compõem a visualização. Operações como rotação, translação, escala e trackball estão implementadas, entre outras. 2.2 Conjuntos de Dados Os dados em visualização científica podem ser definidos sobre domínios 2D, 3D e, genericamente, multidimensionais. Geralmente, um conjunto de dados possui uma certa

5 5 organização como uma malha (ou grade) de células. As células também são elementos de volumes unitários, porém os dados estão posicionados nos seus vértices, enquanto que, nos voxels, os dados estão armazenados em seu interior. Os valores podem ser obtidos no interior de células através de interpolação. (figura 2.2). Figura 2.2: (a) Malha regular volumétrica, (b) malha de voxels, (c) malha de células. Os dados também podem constituir um conjunto de pontos esparsos ou malhas geométricas de outra natureza. Além disso, as informações associadas a cada ponto da malha podem ser um ou mais valores escalares, vectoriais ou tensoriais. Um conjunto de dados consiste de duas partes: uma estrutura de organização e atributos de dados complementares associados à estrutura. A estrutura tem duas partes: uma topologia e uma geometria. A topologia é um conjunto de propriedades invariantes sob certas transformações geométricas (como por exemplo, rotação e translação). A geometria é a instanciação da topologia, ou seja, a especificação da posição no espaço 3D. Por exemplo, quando se declara que um polígono é um ``triângulo'', está-se a especificar a topologia. E quando se fornece as coordenadas dos pontos, está-se a especificar a geometria. Os atributos, por sua vez, são informações complementares que podem estar associadas tanto à geometria como à topologia. 2.3 Organização do Volume de Dados O volume de dados representa o trecho do espaço 3D onde se localiza o objecto, dado ou cena a ser renderizada. Uma malha faz referência à organização do volume de dados. Existem diferentes tipos de malhas: Em uma malha cartesiana todos os elementos são quadrados (no caso 2D) ou cubos idênticos (no caso 3D), alinhados aos eixos principais. É a forma ideal de estrutura, pois permite o acesso mais rápido aos dados. Uma malha

6 6 regular tem todos os seus elementos idênticos e alinhados aos eixos, mas esses elementos são rectângulos ou paralelepípedos de dimensões constantes. Elementos de uma malha rectilínea são quadriláteros ou hexaedros alinhados aos eixos, mas não necessariamente idênticos. Elementos de uma malha estruturada são quadriláteros ou hexaedros não alinhados aos eixos principais, como os que aparecem em grades esféricas ou curvilíneas. Uma malha estruturada em blocos é um conjunto de malhas estruturadas agrupadas. Uma malha não-estruturada contém polígonos ou poliedros sem qualquer padrão explícito de conectividade. No caso 3D, as células podem ser tetraedros, hexaedros, pirâmides, etc. Uma malha híbrida é uma combinação de quaisquer dos tipos anteriores (figura 2.3). Figura 2.3: Tipos de malhas: (a) Cartesiana, (b) Regular, (c) Rectilínea, (d) Estruturada, (e) Não-estruturada. 2.4 A Estrutura de Classes do VTK Abaixo seguem algumas das classes presentes no VTK que representam os conjuntos de dados suportados pela biblioteca e seus mapeadores. Todos os objectos criados no VTK, com poucas excepções, são especializações (subclasses) da classe abstracta vtkobject ou de um de seus filhos. Essa classe base fornece métodos de controlo para cada objecto criado pela biblioteca, incluindo triagem do tempo de modificações, depuração e impressão. Os conjuntos de dados de visualização suportados pelo VTK são mostrados na figura 2.4. Para a representação desses conjuntos de dados foi criada a classe genérica vtkdataobject. Objectos do tipo conjunto de dados (datasets) implementam os tipos de dados fundamentais tipicamente usados em visualização. Esses objectos de dados são entrada e saída de fontes, filtros e mapeadores. A classe abstracta vtkdataset especifica uma interface que todas as classes derivadas precisam fornecer. Ela também provê métodos que fornecem informações sobre os dados, tais como o centro do objecto, caixa de bordo (limites espaciais do domínio de dados) e largura representativa (comprimento da diagonal da caixa de borda). Um conjunto de dados no VTK consiste de uma estrutura definida por

7 7 geometria e topologia, e de atributos de dados associados, sendo composto por um ou mais pontos e células. A figura 2.5 mostra o diagrama de classes do vtkdataset e suas subclasses. O tipo de um conjunto de dados é determinado pela sua estrutura de organização, e especifica o relacionamento que as células e pontos têm entre si. Figura 2.4: Tipos de conjuntos de dados (datasets) do VTK. A ``Malha Não Estruturada'' consiste de todos os tipos de célula. Para trabalhar com malhas do tipo cartesiana, o VTK possui uma classe chamada vtkstructuredpoints. A vtkstructuredpoints representa uma estrutura geométrica que é uma matriz de pontos topologicamente e geometricamente regular. Essa estrutura é utilizada para o armazenamento de figuras bidimensionais, como texturas, e dados

8 8 volumétricos para a representação em DVR ou reconstrução. A classe vtkrectilineargrid representa uma malha rectilínea. A classe abstracta vtkpointset especifica a interface para conjuntos de dados que usam explicitamente matrizes de pontos para representar geometria. Por exemplo, vtkpolydata e vtkunstructuredgrid requerem matrizes de pontos para especificar as posições dos pontos, enquanto vtkstructuredpoints gera posições de pontos implicitamente. A vtkstructuredgrid representa uma malha estruturada. A classe vtkunstrucuredgrid consiste de uma combinação arbitrária de células 2D e 3D, além de pontos. Geometria e Topologias são explicitamente definidas.

9 9 Figura 2.5: Diagrama de objectos dos tipos de dados do VTK herdeiros de vtkdataset. A maioria das fontes do VTK gera objectos no formato ``dados poligonais'', ou PolyData, que é um tipo de conjunto de dados que pode ser facilmente renderizado para bibliotecas gráficas. A classe vtkpolydata representa esse tipo de estrutura geométrica, consistindo de vértices, linhas, polígonos e faixa de triângulos. Ela é a estrutura utilizada durante o processo de renderização dos conjuntos de dados geométricos do VTK, que ocorre através da classe vtkpolydatamapper. A classe vtkpolydatamapper é a classe que mapeia dados poligonais (PolyData) para primitivas gráficas renderizáveis. Ela é uma super classe de mapeadores poligonais para dispositivos específicos, como a biblioteca OpenGL. O usuário não precisa seleccionar qual dispositivo o VTK usará. Ele simplesmente aloja um mapeador de dados poligonais e o VTK escolhe o dispositivo adequado para a renderização. Para os outros tipos de dados, é utilizada a classe vtkdatasetmapper, que é um mapeador de conjuntos de dados (vtkdataset e todas classes derivadas) para primitivas gráficas. A classe vtkdatasetmapper não possui subclasses específicas. O processo de renderização desse mapeador converte o conjunto de dados (DataSet) para dados poligonais (PolyData) através de um filtro e renderiza utilizando o vtkpolydatamapper.

10 10 3. Triangulação de Delaunay A triangulação de um conjunto de pontos consiste em encontrar segmentos de recta que conectam estes pontos de tal modo que nenhum desses segmentos cruze com nenhum outro e que cada ponto seja vértice de pelo menos um triângulo formado por esses segmentos. Esses segmentos particionam o conjunto de pontos em triângulos, daí o nome Triangulação. O grafo dual de um Diagrama de Voronoi constitui uma triangulação cujos pontos são os pontos construtores do diagrama de Voronoi. A esta triangulação particular dá-se o nome de Triangulação de Delaunay. De fato existe um algoritmo que, dado um Diagrama de Voronoi, obtém a Triangulação de Delaunay em tempo linear. Outro algoritmo faz o serviço inverso, também em tempo O(n). Porém, existem algoritmos que produzem a Triangulação de Delaunay directamente do conjunto de pontos. Um triângulo da Triangulação de Delaunay tem a seguinte propriedade: determina um círculo cujo interior não contém nenhum outro ponto do conjunto de pontos a não ser os três pontos que determinam o triângulo. 3.1 Algoritmo quadrático Um algoritmo quadrático que produz a Triangulação de Delaunay pode ser descrito da seguinte forma: primeiro procura-se uma aresta qualquer do fecho convexo. Essa aresta com certeza estará em qualquer triangulação pois o fecho convexo está sempre contido numa triangulação. A ideia básica deste algoritmo é usar as arestas já determinadas para encontrar as demais. Toda aresta da triangulação pertence a um ou dois triângulos. Uma aresta só incide num triângulo se for uma aresta do fecho convexo. A partir de uma aresta adjacente a uma face já conhecida (um triângulo ou a face externa) pode-se determinar o outro triângulo que compartilha esta aresta da seguinte maneira: encontrar o ponto p do lado apropriado do segmento para o qual o círculo determinado pelo triângulo contendo os vértices do segmento e o ponto p não possui nenhum outro ponto do conjunto interno a ele. Esse triângulo é uma componente da Triangulação de Delaunay.

11 11 O algoritmo é fácil de ser implementado pois não requer a utilização de estruturas de dados complicadas. Basta uma fila de arestas não-inspecionadas e uma matriz de adjacência.

12 12 4. Métodos Utilizados Nesta secção estão descritas as classes do vtk utilizadas // Leitura do ficheiro BMP vtkbmpreader *imagein = vtkbmpreader::new(); imagein->setfilename("c:\\windows\\ambiente de trabalho\\d\\ice.bmp"); // Criação do actor para imagem vtkimageactor *imgactor = vtkimageactor::new(); imgactor->setinput(imagein->getoutput()); // Extrai o número de componentes escalares dos pontos da imagem vtkimageconstantpad *pad = vtkimageconstantpad::new(); pad->setinput(imagein->getoutput()); pad->setoutputnumberofscalarcomponents(3); pad->setconstant(0); // Criar um conjunto de pontos estruturados a partir da imagem // e do número de componentes. vtkimagetostructuredpoints *i2sp1 = vtkimagetostructuredpoints:: New(); i2sp1->setinput(imagein->getoutput()); i2sp1->setvectorinput(pad->getoutput()); vtkstructuredpoints *ppoints = i2sp1->getoutput(); ppoints->update(); int n = ppoints->getnumberofpoints();

13 13 vtkdataarray *ptscalars; ptscalars = (ppoints->getpointdata())->getscalars(); float rgb[3]; float x[3]; printf("\n n=%d", n); printf("\n size=%d", ptscalars->getsize()); vtkmath *math = vtkmath::new(); vtkpoints *points = vtkpoints::new(); vtkcellarray *polys = vtkcellarray::new(); register int i; // Criação de uma polydata com os pontos da imagem for (i = 0; i < n; i++) { } ppoints->getpoint(i, x); ((ppoints->getpointdata())->getscalars())->gettuple(i, rgb); points->insertpoint(i, x[0], x[1], (rgb[0]*20+rgb[1]*59+rgb[2]*11)/100); polys->insertnextcell(1); polys->insertcellpoint(i); // Introdução da Polydata vtkpolydata *profile = vtkpolydata::new(); profile->setpoints(points); profile->setverts(polys); // Criação do actor de entrada relativo ao mapa de pontos

14 14 vtkpolydatamapper *mappoints = vtkpolydatamapper::new(); mappoints->setinput(profile); vtkactor *actorpoints = vtkactor::new(); actorpoints->setmapper(mappoints); (actorpoints->getproperty())->setcolor(0, 0, 1); // Triangulação 2D Delaunay a partir dos pontos. vtkdelaunay2d *del = vtkdelaunay2d::new(); del->setinput(profile); del->settolerance(0.1); // Criação o actor de saída vtkdatasetmapper *map = vtkdatasetmapper::new(); map->setinput(del->getoutput()); // map->setinput(ppoints); vtkactor *triangulation2d = vtkactor::new(); triangulation2d->setmapper(map); (triangulation2d->getproperty())->setcolor(1, 0, 0); // Criação de dados de texto vtkvectortext *text1 = vtkvectortext::new(); text1->settext("imagem BMP"); vtkvectortext *text2 = vtkvectortext::new(); text2->settext("pontos"); vtkvectortext *text3 = vtkvectortext::new();

15 15 text3->settext("triangulacao"); // Mapeação dos vectores de texto vtkpolydatamapper *textmapper1 = vtkpolydatamapper::new(); textmapper1->setinput(text1->getoutput()); vtkpolydatamapper *textmapper2 = vtkpolydatamapper::new(); textmapper2->setinput(text2->getoutput()); vtkpolydatamapper *textmapper3 = vtkpolydatamapper::new(); textmapper3->setinput(text3->getoutput()); // Criação do actor de texto vtkactor *textactor1 = vtkactor::new(); textactor1->setmapper(textmapper1); (textactor1->getproperty())->setcolor(0, 0, 0); vtkactor *textactor2 = vtkactor::new(); textactor2->setmapper(textmapper2); (textactor2->getproperty())->setcolor(0, 0, 0); vtkactor *textactor3 = vtkactor::new(); textactor3->setmapper(textmapper3); (textactor3->getproperty())->setcolor(0, 0, 0); // Construção de renderers vtkrenderer *ren1= vtkrenderer::new();; ren1->addactor(textactor1); ren1->setbackground(1, 1, 1); ren1->setviewport(0, 0.45, 0.33, 1);

16 16 vtkrenderer *ren4= vtkrenderer::new();; ren4->addactor(imgactor); ren4->setbackground(1, 1, 1); ren4->setviewport(0, 0, 0.33, 0.70); vtkrenderer *ren2= vtkrenderer::new(); ren2->addactor(textactor2); ren2->setbackground(1, 1, 1); ren2->setviewport(0.33, 0.60, 0.66, 1); vtkrenderer *ren5= vtkrenderer::new(); ren5->addactor(actorpoints); ren5->setbackground(1, 1, 1); ren5->setviewport(0.33, 0, 0.66, 0.70); vtkrenderer *ren3= vtkrenderer::new(); ren3->addactor(textactor3); ren3->setbackground(1, 1, 1); ren3->setviewport(0.66, 0.45, 1, 1); vtkrenderer *ren6= vtkrenderer::new(); ren6->addactor(triangulation2d); ren6->setbackground(1, 1, 1); ren6->setviewport(0.66, 0, 1, 0.70); // renderwindow vtkrenderwindow *renwin1 = vtkrenderwindow::new(); renwin1->addrenderer(ren1); renwin1->addrenderer(ren2); renwin1->addrenderer(ren3); renwin1->addrenderer(ren4);

17 17 renwin1->addrenderer(ren5); renwin1->addrenderer(ren6); renwin1->setsize(1024, 500); // Janela de interação vtkrenderwindowinteractor * interactor1 = vtkrenderwindowinteractor::new(); interactor1->setrenderwindow(renwin1); renwin1->render(); interactor1->start(); // apagar os objectos construídos math->delete(); points->delete(); polys->delete(); profile->delete(); del->delete(); map->delete(); ren1->delete(); ren2->delete(); ren3->delete(); ren4->delete(); ren5->delete(); ren6->delete(); renwin1->delete(); interactor1->delete();

18 18 5. Resultados A compilação do código elaborado foi feita através do Microsoft Studio C++. Os resultados que se seguem ilustram não só o método de triangulação de Delaunay descrito anteriormente como também as potencialidades do vtk como programa de visualização. As figuras seguintes serviram de exemplo para utilizar como teste na obtenção dos pontos estruturados. Figura 5.1. Imagens BMP utilizadas na aplicação: à esquerda a figura ice1.bmp e à direita a figura ice2.bmp A compilação do projecto resulta na renderização de uma janela com 6 actores: 3 actores de texto com o título dos outros 3 actores correspondentes às mapeações obtidas. A utilização de duas imagens exemplo provém da necessidade de explicar a tolerância da triangulação de Delaunay ao número de pontos obtidos. A figura seguinte é o Output da renderização para a primeira imagem. O primeiro mapper é simplesmente a visualização da imagem BMP com o respectivo título. No segundo é a apresentada a estrutura de pontos obtida e por o resultado da triangulação. O número de pontos obtidos e utilizados na triangulação foi de A figura 5.3. é resultado da rotação dos actores de forma a visualizar em pormenor o resultado obtido.

19 19 Figura 5.2 Visualização da Triangulação de Delaunay na imagem ice1.bmp Figura 5.3 Visualização da Triangulação de Delaunay na imagem ice1.bmp, depois de aplicadas rotações sobre os actores. As figura 5.4 e 5.5 ilustram o mesmo processo mas aplicado à imagem ice2.bmp. Neste caso o número de pontos foi de

20 20 Figura 5.4 Visualização da Triangulação de Delaunay na imagem ice2.bmp Figura 5.5 Visualização da Triangulação de Delaunay na imagem ice2.bmp, depois de aplicadas rotações sobre os actores. Por comparação verifica-se que a resolução do segundo exemplo é muito maior do que a do primeiro exemplo. Isto deve-se ao facto de que a tolerância da triangulação usada no primeiro exemplo foi de 0.1 e neste caso de No primeiro caso o número de pontos era demasiado elevado para aplicar uma tolerância de 0.01 pois o esforço computacional era inapropriado. Mas para perceber melhor a diferença de resultados na diminuição de tolerância a figura 5.6 é o resultado da aplicação de uma tolerância de 0.1 na imagem ice2.bmp.

21 21 Figura 5.5 Visualização da Triangulação na imagem ice2.bmp com tolerância 0.1. Depois de feita a triangulação não é possível distinguir os dois icebergs presentes na imagem, visto que o número de pontos utilizado foi muito pequeno.

22 22 6- Conclusão A aplicação da triangulação 2D de Delaunay permite definir uma estrutura topológica a partir de pontos de uma imagem. A determinação das coordenadas dos pontos da imagem depende directamente da composição RGB da imagem. Isto é, quanto maior for a diferença cromática da imagem a maior será a diferença de valores obtidos na terceira coordenada dos pontos. O número de triângulos é estabelecido pelo número de pontos e pela tolerância da triangulação. Quanto menor for a tolerância maior o número de triângulos. Existe assim um compromisso entre a tolerância e o esforço computacional. É necessário verificar o número de pontos de forma a definir uma tolerância adequada à capacidade de processamento da máquina.

23 23 Apêndice /*################################################################ // Trabalho realizado por: \\ // \\ // Maria Mafalda Sousa - MMCCE \\ // \\ // \\ // Triangulação 2D de Delaunay em pontos obtidos por uma imagem BMP. \\ // \\ // \\ #################################################################*/ #include "vtkvectortext.h" #include "vtkbmpreader.h" #include "vtkimageconstantpad.h" #include "vtkimagetostructuredpoints.h" #include "vtkstructuredpoints.h" #include "vtkimageactor.h" #include "vtkmath.h" #include "vtkpoints.h" #include "vtkpointdata.h" #include "vtkcellarray.h" #include "vtkpolydata.h" #include "vtkpolydatamapper.h" #include "vtkdelaunay2d.h" #include "vtkdatasetmapper.h" #include "vtkactor.h" #include "vtkproperty.h" #include "vtkrenderer.h" #include "vtkrenderwindow.h" #include "vtkrenderwindowinteractor.h" int main( int argc, char *argv[] )

24 24 { // Leitura do ficheiro BMP vtkbmpreader *imagein = vtkbmpreader::new(); imagein->setfilename("c:\\windows\\ambiente de trabalho\\trabalho VTK\\TDelaunay2D_1\\ice1.bmp"); // Criação do actor para imagem vtkimageactor *imgactor = vtkimageactor::new(); imgactor->setinput(imagein->getoutput()); // Extrai o número de componentes escalares dos pontos da imagem vtkimageconstantpad *pad = vtkimageconstantpad::new(); pad->setinput(imagein->getoutput()); pad->setoutputnumberofscalarcomponents(3); pad->setconstant(0); // Criar um conjunto de pontos estruturados a partir da imagem // e do número de componentes. vtkimagetostructuredpoints *i2sp1 = vtkimagetostructuredpoints:: New(); i2sp1->setinput(imagein->getoutput()); i2sp1->setvectorinput(pad->getoutput()); vtkstructuredpoints *ppoints = i2sp1->getoutput(); ppoints->update(); int n = ppoints->getnumberofpoints(); vtkdataarray *ptscalars;

25 25 ptscalars = (ppoints->getpointdata())->getscalars(); float rgb[3]; float x[3]; printf("\n n=%d", n); printf("\n size=%d", ptscalars->getsize()); vtkmath *math = vtkmath::new(); vtkpoints *points = vtkpoints::new(); vtkcellarray *polys = vtkcellarray::new(); register int i; // Criação de uma polydata com os pontos da imagem for (i = 0; i < n; i++) { } ppoints->getpoint(i, x); ((ppoints->getpointdata())->getscalars())->gettuple(i, rgb); points->insertpoint(i, x[0], x[1], (rgb[0]*20+rgb[1]*59+rgb[2]*11)/100); polys->insertnextcell(1); polys->insertcellpoint(i); // Introdução da Polydata vtkpolydata *profile = vtkpolydata::new(); profile->setpoints(points); profile->setverts(polys); // Criação do actor de entrada relativo ao mapa de pontos

26 26 vtkpolydatamapper *mappoints = vtkpolydatamapper::new(); mappoints->setinput(profile); vtkactor *actorpoints = vtkactor::new(); actorpoints->setmapper(mappoints); (actorpoints->getproperty())->setcolor(0, 0, 1); // Triangulação 2D Delaunay a partir dos pontos. vtkdelaunay2d *del = vtkdelaunay2d::new(); del->setinput(profile); del->settolerance(0.1); // Criação o actor de saída vtkdatasetmapper *map = vtkdatasetmapper::new(); map->setinput(del->getoutput()); // map->setinput(ppoints); vtkactor *triangulation2d = vtkactor::new(); triangulation2d->setmapper(map); (triangulation2d->getproperty())->setcolor(1, 0, 0); // Criação de dados de texto vtkvectortext *text1 = vtkvectortext::new(); text1->settext("imagem BMP"); vtkvectortext *text2 = vtkvectortext::new(); text2->settext("pontos"); vtkvectortext *text3 = vtkvectortext::new();

27 27 text3->settext("triangulacao"); // Mapeação dos vectores de texto vtkpolydatamapper *textmapper1 = vtkpolydatamapper::new(); textmapper1->setinput(text1->getoutput()); vtkpolydatamapper *textmapper2 = vtkpolydatamapper::new(); textmapper2->setinput(text2->getoutput()); vtkpolydatamapper *textmapper3 = vtkpolydatamapper::new(); textmapper3->setinput(text3->getoutput()); // Criação do actor de texto vtkactor *textactor1 = vtkactor::new(); textactor1->setmapper(textmapper1); (textactor1->getproperty())->setcolor(0, 0, 0); vtkactor *textactor2 = vtkactor::new(); textactor2->setmapper(textmapper2); (textactor2->getproperty())->setcolor(0, 0, 0); vtkactor *textactor3 = vtkactor::new(); textactor3->setmapper(textmapper3); (textactor3->getproperty())->setcolor(0, 0, 0); // Construção de renderers vtkrenderer *ren1= vtkrenderer::new();; ren1->addactor(textactor1); ren1->setbackground(1, 1, 1); ren1->setviewport(0, 0.45, 0.33, 1);

28 28 vtkrenderer *ren4= vtkrenderer::new();; ren4->addactor(imgactor); ren4->setbackground(1, 1, 1); ren4->setviewport(0, 0, 0.33, 0.70); vtkrenderer *ren2= vtkrenderer::new(); ren2->addactor(textactor2); ren2->setbackground(1, 1, 1); ren2->setviewport(0.33, 0.60, 0.66, 1); vtkrenderer *ren5= vtkrenderer::new(); ren5->addactor(actorpoints); ren5->setbackground(1, 1, 1); ren5->setviewport(0.33, 0, 0.66, 0.70); vtkrenderer *ren3= vtkrenderer::new(); ren3->addactor(textactor3); ren3->setbackground(1, 1, 1); ren3->setviewport(0.66, 0.45, 1, 1); vtkrenderer *ren6= vtkrenderer::new(); ren6->addactor(triangulation2d); ren6->setbackground(1, 1, 1); ren6->setviewport(0.66, 0, 1, 0.70); // renderwindow vtkrenderwindow *renwin1 = vtkrenderwindow::new(); renwin1->addrenderer(ren1); renwin1->addrenderer(ren2); renwin1->addrenderer(ren3); renwin1->addrenderer(ren4); renwin1->addrenderer(ren5);

29 29 renwin1->addrenderer(ren6); renwin1->setsize(1024, 500); // Janela de interação vtkrenderwindowinteractor * interactor1 = vtkrenderwindowinteractor::new(); interactor1->setrenderwindow(renwin1); renwin1->render(); interactor1->start(); // apagar os objectos construídos math->delete(); points->delete(); polys->delete(); profile->delete(); del->delete(); map->delete(); ren1->delete(); ren2->delete(); ren3->delete(); ren4->delete(); ren5->delete(); ren6->delete(); renwin1->delete(); interactor1->delete(); } return 0;

Aplicação da Visualização Científica à Oceanografia Representação da agitação marítima no porto de Leixões

Aplicação da Visualização Científica à Oceanografia Representação da agitação marítima no porto de Leixões Aplicação da Visualização Científica à Oceanografia Representação da agitação marítima no porto de Leixões Disciplina de Visualização Científica Mestrado em Métodos Computacionais em Ciências e Engenharia

Leia mais

Modelo gráfico do VTK: fundamentos e aplicações

Modelo gráfico do VTK: fundamentos e aplicações Modelo gráfico do VTK: fundamentos e aplicações J. Barbosa J. Tavares 1 Visualização Científica Modelo gráfico do VTK Principais classes do modelo gráfico do VTK: Render Window Renderer Light Camera Actor

Leia mais

Modelo gráfico do VTK: fundamentos e aplicações

Modelo gráfico do VTK: fundamentos e aplicações Modelo gráfico do VTK: fundamentos e aplicações J. Barbosa J. Tavares 1 Modelo gráfico do VTK Principais classes do modelo gráfico do VTK: Render Window Renderer Light Camera Actor Protected Attributes:»

Leia mais

Computação Gráfica - 09

Computação Gráfica - 09 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 9 jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Objetos

Leia mais

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D Sumário COMPUTAÇÃO GRÁFICA E INTERFACES Transformações Geométricas e Visualização D Transformações geométricas Pipeline de visualização D Transformação de coordenadas Window-Viewport Recorte (Clipping)

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Niterói 2008 Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Trabalho de Conclusão

Leia mais

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF

Professor: Computação Gráfica I. Anselmo Montenegro  Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF Computação Gráfica I Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Objetos gráficos planares 1 Objetos gráficos: conceitos O conceito de objeto gráfico é fundamental para a Computação

Leia mais

Modelo. Representação de Objetos Tridimensionais. Malhas Poligonais. Modelagem Geométrica. Modelos Geométricos

Modelo. Representação de Objetos Tridimensionais. Malhas Poligonais. Modelagem Geométrica. Modelos Geométricos Representação de Objetos Tridimensionais Malhas Poligonais Maria Cristina F. de Oliveira Rosane 2010 Modelo Representação construída artificialmente para tornar mais fácil a observação/análise de um objeto/fenômeno

Leia mais

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA SIG FORMATOS DE REPRESENTAÇÃO DE DADOS FORMATO VETORIAL

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA SIG FORMATOS DE REPRESENTAÇÃO DE DADOS FORMATO VETORIAL FORMATO VETORIAL 1 FORMATO VETORIAL Formato que utiliza como primitivas Pontos, Linhas e Polígonos, baseadas em equações matemáticas para representar imagens na computação gráfica Primitivas: elementos

Leia mais

Desenvolvimento de uma Interface Gráfica para o Programa FastComp

Desenvolvimento de uma Interface Gráfica para o Programa FastComp MESTRADO EM MÉTODOS M COMPUTACIONAIS EM CIÊNCIAS E ENGENHARIA de uma Interface Gráfica para o Programa Patrícia C. T. Gonçalves Licenciada em Física/Matemática Aplicada (Astronomia) Orientador João Manuel

Leia mais

Departamento de Matemática

Departamento de Matemática Computação Gráfica - Evolução de Curvas e Superfícies Aluno: Vinícius Segura Orientador: Sinésio Pesco Introdução Nas últimas décadas atravessamos uma verdadeira revolução tecnológica, devido ao avanço

Leia mais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios - 2013.1 Conceitos fundamentais 1) A Computação Gráfica é dividida em diversas sub-áreas.

Leia mais

Computação Gráfica. Representação e Modelagem

Computação Gráfica. Representação e Modelagem Computação Gráfica Representação e Modelagem Professora: Sheila Cáceres Baseado nos slides da Prof. Soraia Musse Modelagem Área da Computação Gráfica que estuda a criação de modelos dos objetos reais.

Leia mais

Fundamentos e Conceitos Básicos

Fundamentos e Conceitos Básicos Mestrado em Engenharia Informática e de Computadores Processamento de Objectos 3D Fundamentos e Conceitos Básicos Representação de Objectos 3D 2011 Corpo docente de / CG&M / DEI / IST / UTL Sumário Representação

Leia mais

Modelos de Objetos por Malhas Poligonais. Maria Cristina F. de Oliveira

Modelos de Objetos por Malhas Poligonais. Maria Cristina F. de Oliveira Modelos de Objetos por Malhas Poligonais Maria Cristina F. de Oliveira 2009 Modelo Representação construída artificialmente para tornar mais fácil a observação/análise de um objeto/fenômeno Nível de detalhe

Leia mais

Professor: Anselmo Montenegro Conteúdo (aula 7): - Noções de estruturas de dados topológicas. Instituto de Computação - UFF

Professor: Anselmo Montenegro  Conteúdo (aula 7): - Noções de estruturas de dados topológicas. Instituto de Computação - UFF Geometria Computacional Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo (aula 7): - Noções de estruturas de dados topológicas 1 Roteiro Introdução Representação por grafos: grafo de incidências

Leia mais

e, através de uma série de exemplos desenvolvidos próprios cenários de visualização.

e, através de uma série de exemplos desenvolvidos próprios cenários de visualização. Programação Python/3D Visualização tridimensional com o VTK Manipulação 3D no Python www.sxc.hu wolf friedmann Atualmente, o mundo dos objetos 3D já faz parte do cotidiano: é só reparar no uso que a indústria

Leia mais

Flávio André. Prof. Dalton Solano dos Reis

Flávio André. Prof. Dalton Solano dos Reis PROTÓTIPO DE UM SISTEMA PARA VISUALIZAÇÃO 3D USANDO IMAGENS RASTER 2D COM CONCEITOS DE UM AMBIENTE DE VISUALIZAÇÃO CIENTÍFICA Flávio André Prof. Dalton Solano dos Reis Roteiro Introdução/Motivação/Objetivo

Leia mais

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Transformações 2D Computação Visual Beatriz Sousa Santos, Joaquim Madeira Transformações 2D Posicionar, orientar e escalar

Leia mais

Processamento de Imagem Digital utilizando software VTK

Processamento de Imagem Digital utilizando software VTK UNIVERSIDADE DO PORTO FACULDADE DE CIÊNCIAS DA UNIVERSIDADE DO PORTO FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Processamento de Imagem Digital utilizando software VTK José Miguel Mesquita Teixeira

Leia mais

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal... Sumário Prefácio...15 Capítulo 1 Introdução...17 Capítulo 2 Instalação...22 2.1 Visão Geral das Bibliotecas OpenGL...22 2.2 Bibliotecas Necessárias para Execução...24 2.3 Bibliotecas Necessárias para Compilação...24

Leia mais

Computação Gráfica - OpenGl 02

Computação Gráfica - OpenGl 02 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - OpenGl 02 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Modelação de Formas Geométricas

Modelação de Formas Geométricas Modelação de Formas Geométricas Computação Gráfica Inverno 2012/2013 Parcialmente adaptado de Hanspeter Pfister, Harvard / MERL Carlos Guedes @ 2012 ISEL/ADEETC Computação Gráfica 1 2 http://hof.povray.org/images/villarceau_circles-csg.jpg

Leia mais

Poliedros. INF2604 Geometria Computacional. Waldemar Celes. Departamento de Informática, PUC-Rio. W.

Poliedros. INF2604 Geometria Computacional. Waldemar Celes. Departamento de Informática, PUC-Rio. W. Poliedros INF2604 Geometria Computacional Waldemar Celes celes@inf.puc-rio.br Departamento de Informática, PUC-Rio W. Celes Poliedros 1 Poliedros Poliedros Região 3D delimitada por uma fronteira composta

Leia mais

Geração Procedural de Terrenos em GPU

Geração Procedural de Terrenos em GPU Geração Procedural de Terrenos em GPU Felipe Gomes Sampaio Universidade Federal de Juiz de Fora Departamento de Ciência da Computação Orientadora: Jesuliana Nascimento Ulysses Agenda Introdução GPU Terrenos

Leia mais

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO UNIVERSIDADE DE SÃO PAULO Escola Politécnica Departamento de Engenharia de Minas e de Petróleo PMI Graduação em Engenharia de Petróleo PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO SISTEMAS DE INFORMAÇÕES

Leia mais

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho A terceira dimensão A terceira dimensão Realidade virtual Métodos de representação tridimensional: modelos geométricos; superfícies poligonais; superfícies curvas; representações de varredura; geometria

Leia mais

António Costa. Paulo Roma Cavalcanti

António Costa. Paulo Roma Cavalcanti Introdução à Computação Gráfica Preâmbulo Adaptação: Autoria: João Paulo Pereira António Costa Claudio Esperança Paulo Roma Cavalcanti Computação Gráfica Modelos Matemáticos Análise (reconhecimento de

Leia mais

Banco de Dados Espaciais

Banco de Dados Espaciais Banco de Dados Espaciais Disciplina BD Não Convencionais Prof. Ricardo Rodrigues Ciferri São Carlos, 20 de Agosto de 2010 Sumário Tipos de Dados Espaciais Representação dos Dados Processamento de Consultas

Leia mais

Geometria Computacional

Geometria Computacional Geometria Computacional Claudio Esperança Paulo Roma Cavalcanti Estrutura do Curso Aspectos teóricos e práticos Construção e análise de algoritmos e estruturas de dados para a solucionar problemas geométricos

Leia mais

Histórico. Estado da Arte. Histórico. Modelagem de Objetos. Modelagem por arames (wireframes). Modelagem por superfícies (década de 60).

Histórico. Estado da Arte. Histórico. Modelagem de Objetos. Modelagem por arames (wireframes). Modelagem por superfícies (década de 60). Histórico Modelagem de Objetos Renato Ferreira Modelagem por arames (wireframes). Representa os objetos por arestas e pontos sobre a sua superfície. Gera modelos ambíguos. Modelagem por superfícies (década

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

Modelo gráfico do VTK: Fonte de Luz e Câmara

Modelo gráfico do VTK: Fonte de Luz e Câmara Modelo gráfico do VTK: Fonte de Luz e Câmara J. Barbosa J. Tavares Visualização Científica Fonte de Luz e Câmara Para criar uma cena 3D (render) é necessário definir pelo menos uma Fonte de Luz e uma câmara.

Leia mais

Modelo gráfico do VTK: Fonte de Luz e Câmara

Modelo gráfico do VTK: Fonte de Luz e Câmara Modelo gráfico do VTK: Fonte de Luz e Câmara J. Barbosa J. Tavares Fonte de Luz e Câmara Para criar uma cena 3D (render) é necessário definir pelo menos uma Fonte de Luz e uma câmara. Se não forem criados

Leia mais

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual A terceira dimensão A terceira dimensão Modelagem tridimensional Elaboração tridimensional Realidade virtual 2 Modelagem tridimensional Métodos de representação tridimensional: modelos geométricos; superfícies

Leia mais

Imagem e Gráficos. vetorial ou raster?

Imagem e Gráficos. vetorial ou raster? http://computacaografica.ic.uff.br/conteudocap1.html Imagem e Gráficos vetorial ou raster? UFF Computação Visual tem pelo menos 3 grades divisões: CG ou SI, AI e PI Diferença entre as áreas relacionadas

Leia mais

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro Transformações de Visualização 2D: Clipping Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro 1 Clipping (recorte) Qualquer procedimento que identifica porções de uma figura que estão

Leia mais

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010 Sistemas Gráficos INF1339 Computação Gráfica Tridimensional Waldemar Celes celes@inf.puc-rio.br sala 505 RDC Tecgraf, DI/PUC-Rio 2 de Agosto de 2010 W. Celes Sistemas Gráficos 1 Visualização 3D Objetivo

Leia mais

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Prof. Fernando V. Paulovich  3 de agosto de SCC Computação Gráca Dispositivos de Saída e SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Objetos Gráficos Espaciais

Objetos Gráficos Espaciais Universidade Federal de Alagoas Instituto de Matemática Objetos Gráficos Espaciais Prof. Thales Vieira 2014 Objetos Gráficos Espaciais f : U R m 7! R 3 Universo físico Objetos gráficos Representação de

Leia mais

Introdução à Computação Gráfica Modelagem. Claudio Esperança Paulo Roma Cavalcanti

Introdução à Computação Gráfica Modelagem. Claudio Esperança Paulo Roma Cavalcanti Introdução à Computação Gráfica Modelagem Claudio Esperança Paulo Roma Cavalcanti Histórico Modelagem por arames (wireframes). Representa os objetos por arestas e pontos sobre a sua superfície. Gera modelos

Leia mais

Computação Gráfica - 13

Computação Gráfica - 13 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 13 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Guia do professor - Fábrica de Cubos e Mosaicos

Guia do professor - Fábrica de Cubos e Mosaicos Guia do professor - Fábrica de Cubos e Mosaicos Introdução Os mosaicos são uma das mais bonitas criações, estando presente em tapeçarias, decoração de interiores, vitrais, cobertura de piso, em obras de

Leia mais

Visualizador 3D para o Ciber-Rato

Visualizador 3D para o Ciber-Rato ELECTRÓNICA E TELECOMUNICAÇÕES, VOL. 5, Nº 1, JUNHO 2009 75 Visualizador 3D para o Ciber-Rato Joaquim Fonseca, Flávio Fonseca, Artur Pereira, Paulo Dias, Resumo - O Ciber-Rato é uma competição de robótica,

Leia mais

Representação de Objectos. & Estruturas de Dados. ! Os modelos são cada vez mais complexos

Representação de Objectos. & Estruturas de Dados. ! Os modelos são cada vez mais complexos Representação de Objectos & Estruturas de Dados Computação Gráfica Representação de Objectos! Os modelos são cada vez mais complexos! Aumento do número de ferramentas de modelação (ex: CAD, Maya, Blender,

Leia mais

Shading (sombreamento) & Smooth Shading

Shading (sombreamento) & Smooth Shading Shading (sombreamento) & Smooth Shading Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Shading & Smooth Shading Objectivo: calcular a cor de cada ponto das superfícies visíveis. Solução brute-force:

Leia mais

Algoritmos geométricos

Algoritmos geométricos Algoritmos geométricos introdução a conceitos básicos de geometria computacional que serão abordados de forma mais avançada na disciplina Computação Gráfica disciplina de computação gráfica arquitetura

Leia mais

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais INSTITUTO DE CIÊNCIAS MATEMÁTICAS DE SÃO CARLOS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA SCE-201 Computação Gráfica Representação de Objetos Tridimensionais Modelos Poligonais Cenas gráficas

Leia mais

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza INF2608 - Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza Trabalho 02 Visualização de Imagens Sísmicas e Detecção Automática de Horizonte Resumo Este trabalho

Leia mais

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10) 4.6 a 4.) Transformações (Cap 4.3, 4.4 e 4.6 a 4.) Instituto Superior Técnico, 26/27 Sumário Revisões Transformações Elementares Coordenadas Homogéneas Composição de Transformações Transformações em OpenGL

Leia mais

4 Extração direta das PELs

4 Extração direta das PELs 4 Extração direta das PELs A detecção de arestas em imagens está relacionada à extração de feições, sendo uma ferramenta fundamental em processamento de imagens e visão computacional. Essa detecção visa

Leia mais

Geometria Computacional

Geometria Computacional GeoComp 2014 p. 1/29 Geometria Computacional Cristina G. Fernandes Departamento de Ciência da Computação do IME-USP http://www.ime.usp.br/ cris/ segundo semestre de 2014 GeoComp 2014 p. 2/29 Poliedros

Leia mais

GEOMETRIA MÉTRICA ESPACIAL

GEOMETRIA MÉTRICA ESPACIAL GEOMETRIA MÉTRICA ESPACIAL .. PARALELEPÍPEDOS RETÂNGULOS Um paralelepípedo retângulo é um prisma reto cujas bases são retângulos. AB CD A' B' C' D' a BC AD B' C' A' D' b COMPRIMENTO LARGURA AA' BB' CC'

Leia mais

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach

Leia mais

Modelagem Geométrica: Boundary Representation

Modelagem Geométrica: Boundary Representation Modelagem Geométrica: Boundary Representation Prof. Dr. André Tavares da Silva Gabriel Caixeta Silva caixetasilva@hotmail.com Prof. Dr. Marcelo da Silva Hounsell PPGCA UDESC 2017/01 Introdução Modelagem

Leia mais

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS Aluno: Marcos Paulo Moraes Orientador: André Silva Pimentel Introdução A nanotecnologia está associada a diversas áreas de pesquisa

Leia mais

JAVA 3D. PSI5789 Síntese de Imagens Professor: Márcio Lobo Netto Aluna: Alice Shimada Bacic. 1 Java 3D API

JAVA 3D. PSI5789 Síntese de Imagens Professor: Márcio Lobo Netto Aluna: Alice Shimada Bacic. 1 Java 3D API JAVA 3D 1 Java 3D API O Java 3D é uma API composta por uma hierarquia de classes em java utilizadas como interface para um sistema de rendering gráfico e de sons. O programador trabalha com construções

Leia mais

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica Introdução Geral a Computação Gráfica Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de 2 Introdução Geral a O que é CG? Áreas de Atuação Definição, Arte e Matemática Mercado

Leia mais

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java

Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java Grupo de Usuários Java do Noroeste Paulista Tópicos Avançados em Java Aula 1 Objetivos Programa exemplo; Programação Orientada a Objetos. Conceitos Orientada a Objetos Mundo real Conceitos Orientada a

Leia mais

Transformações Geométricas Grafos de Cena

Transformações Geométricas Grafos de Cena Transformações Geométricas Grafos de Cena Edward Angel, Cap. 4 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Transformações Geométricas Translação Escala Rotação Espaço Homogéneo

Leia mais

Noções de Geometria. Professora: Gianni Leal 6º B.

Noções de Geometria. Professora: Gianni Leal 6º B. Noções de Geometria Professora: Gianni Leal 6º B. Figuras geométricas no espaço: mundo concreto e mundo abstrato Mundo concreto: é mundo no qual vivemos e realizamos nossas atividades. Mundo abstrato:

Leia mais

Domínio: Geometria. CONSELHO de DOCENTES 1.º Ciclo Página 1

Domínio: Geometria. CONSELHO de DOCENTES 1.º Ciclo Página 1 Domínio: Geometria Subdomínio/Conteúdos Localização e orientação no espaço - Ângulo formado por duas direções; vértice de um ângulo; - Ângulos com a mesma amplitude; - A meia volta e o quarto de volta

Leia mais

Metas/Objetivos Descritores/Conteúdos Aulas previstas

Metas/Objetivos Descritores/Conteúdos Aulas previstas 1º Período Apresentação Levar os alunos a descobrir conceitos essenciais ao programa da disciplina através da Metodologia de Resolução de Problemas. Despertar nos alunos a curiosidade, o prazer da aprendizagem

Leia mais

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Modelação de Sólidos Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Modelação de Sólidos Em 2D um conjunto de segmentos de recta ou curvas não formam necessariamente uma área fechada. Em 3D uma colecção

Leia mais

Computação e Imagens: PI, CG e Visualização. Computação Visual

Computação e Imagens: PI, CG e Visualização. Computação Visual Computação e Imagens: PI, CG e Visualização Computação Visual Instituto de Ciências Matemáticas e de Computação ICMC-USP São Carlos, 2016 1 Roteiro Visão Geral das áreas da computação que envolvem manipulação

Leia mais

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos. AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos

Leia mais

Figura 29 - Simulação de dois fluidos imiscíveis utilizando a biblioteca de Nakamura (2007)

Figura 29 - Simulação de dois fluidos imiscíveis utilizando a biblioteca de Nakamura (2007) 6 Resultados Neste capítulo são discutidos alguns resultados obtidos com a implementação descrita no capítulo anterior. Todos os testes foram realizados utilizando um computador Intel Xeon E5420 com 8GB

Leia mais

Professor: Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Professor: Anselmo Montenegro  Conteúdo: - Introdução. Instituto de Computação - UFF Geometria Computacional Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Introdução 1 Roteiro Origens Definição Problemas geométricos Configurações degeneradas Classificação de problemas

Leia mais

Visualização 2D: - Transformação window to viewport - Clipping

Visualização 2D: - Transformação window to viewport - Clipping Visualização 2D: - Transformação window to viewport - Clipping Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Transformação de Visualização (window to viewport) Objectivo: obter uma matriz de transformação

Leia mais

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência Diagramas Os diagramas utilizados pela UML são compostos de nove tipos: diagrama de use case, de classes, de objecto, de estado, de sequência, de colaboração, de actividade, de componente e o de instalação/execução.

Leia mais

Exame Tipo Computação Gráfica

Exame Tipo Computação Gráfica Exame Tipo Computação Gráfica LEIC-T Prof. Mário Rui Gomes Nº Nome: Antes de começar: Identifique todas as folhas com o seu número. Responda às questões seguintes justificando adequadamente todas as respostas.

Leia mais

Poliedros 1 ARESTAS FACES VERTICES. Figura 1.1: Elementos de um poliedro

Poliedros 1 ARESTAS FACES VERTICES. Figura 1.1: Elementos de um poliedro Poliedros 1 Os poliedros são sólidos cujo volume é definido pela interseção de quatro ou mais planos (poli + edro). A superfície poliédrica divide o espaço em duas regiões: uma região finita, que é a parte

Leia mais

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016 Plano de Ensino de Disciplina Ciência da Computação 2º / 2016 Disciplina: Computação Gráfica e Processamento de Imagens Código: 016031 Série: 8 0 Semestre Carga Horária Semanal: 04 aulas Carga Horária

Leia mais

4. Superfícies e sólidos geométricos

4. Superfícies e sólidos geométricos 4. Superfícies e sólidos geométricos Geometria Descritiva 2006/2007 4.1 Classificação das superfícies e sólidos geométricos Geometria Descritiva 2006/2007 1 Classificação das superfícies Linha Lugar das

Leia mais

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos Aula 5 Mestrado em Educação (em andamento) Pós-graduação em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games : Produção e Programação Bacharel em Sistema de Informação

Leia mais

D1. Terminologia relativa a objectos espaciais na norma SDTS (Spatial Data Transfer Standard).

D1. Terminologia relativa a objectos espaciais na norma SDTS (Spatial Data Transfer Standard). D1. Terminologia relativa a objectos espaciais na norma SDTS (Spatial Data Transfer Standard). Tradução de Fernanda Néry Versão de 18-09-1998 ÍNDICE 2 Conceitos relativos a dados espaciais... 3 2.2 Classificação

Leia mais

Câmara Virtual Simples

Câmara Virtual Simples Câmara Virtual Simples Edward Angel, Cap. 5 Instituto Superior Técnico Computação Gráfica 29/2 Na última aula... Pipeline de Visualiação 3D Câmara Virtual 2, CG&M/IST e Figuras Addison Wesley Sumário Câmara

Leia mais

Solucionador de circuitos lógicos em C++

Solucionador de circuitos lógicos em C++ UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO DCA Solucionador de circuitos lógicos em C++ Camila de Oliveira Silva, 2009028716 Victor Neves Nogueira,

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

4º. ano 1º. VOLUME. Projeto Pedagógico de Matemática 1. AS OPERAÇÕES E AS HABILIDADES DE CALCULAR MENTALMENTE. Números e operações.

4º. ano 1º. VOLUME. Projeto Pedagógico de Matemática 1. AS OPERAÇÕES E AS HABILIDADES DE CALCULAR MENTALMENTE. Números e operações. 4º. ano 1º. VOLUME 1. AS OPERAÇÕES E AS HABILIDADES DE CALCULAR MENTALMENTE Realização de compreendendo seus significados: adição e subtração (com e sem reagrupamento) Multiplicação (como adição de parcelas

Leia mais

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Conceitos de Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não

Leia mais

Modelos Conceituais de Dados

Modelos Conceituais de Dados Modelos Conceituais de Dados 2. Modelagem Conceitual de Dados Geográficos A partir de idéias conceituais de fenômenos geográficos é possível formalizar a representação do espaço e de propriedades espaciais.

Leia mais

AGRUPAMENTO DE ESCOLAS

AGRUPAMENTO DE ESCOLAS AGRUPAMENTO DE ESCOLAS De CASTRO DAIRE Escola Secundária de Castro Daire Grupo de Recrutamento 00 MATEMÁTICA Ano letivo 202/203 Planificação Anual Disciplina: Matemática A Ano: 0º Carga horária semanal:

Leia mais

Conteúdos Ideias-Chave Objectivos específicos. múltiplo de outro número, este é divisor do primeiro.

Conteúdos Ideias-Chave Objectivos específicos. múltiplo de outro número, este é divisor do primeiro. Capítulo 1 Números Naturais Múltiplos e Divisores Se um número natural é múltiplo de outro número, este é divisor do primeiro. Números primos e números compostos Decomposição de um número em factores primos

Leia mais

foi o Rhinoceros com auxílio do plug-in Grasshopper. Desenvolveu-se a partir destes uma estrutura paramétrica, capaz de fornecer abrigo a pessoas.

foi o Rhinoceros com auxílio do plug-in Grasshopper. Desenvolveu-se a partir destes uma estrutura paramétrica, capaz de fornecer abrigo a pessoas. FAUTL 2012/2013 2º semestre Nome do aluno: Marcos Tadeu Pretto Número mecanográfico: 20128268 Modelação Geométrica Exercício nº 1 Relatório 1. Introdução Este relatório têm por finalidade expor os métodos

Leia mais

Triangulação Mapeamento em Viewport Modelação Geométrica

Triangulação Mapeamento em Viewport Modelação Geométrica Triangulação Mapeamento em Viewport Modelação Geométrica Apontamentos CG + Edward Angel, Cap Instituto Superior Técnico Computação Gráfica 29/2 Na última aula... Iluminação e Reflexão Modelo de Iluminação

Leia mais

Pipeline de Visualização 3D

Pipeline de Visualização 3D Pipeline de Visualização 3D André Tavares da Silva andre.silva@udesc.br Capítulo 5 de Foley Capítulo 2 de Azevedo e Conci Processo de Visualização https://www.youtube.com/watch?v=ogqam2mykng Processo de

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

TRANSFORMAÇÕES GEOMÉTRICAS

TRANSFORMAÇÕES GEOMÉTRICAS TRANSFORMAÇÕES GEOMÉTRICAS É essencial retomar a intenção de dar às transformações geométricas o seu papel importante no ensino da geometria, num tratamento que tenha por ponto de partida e desenvolva

Leia mais

MINI-CURSO Geometria Espacial com o GeoGebra Profa. Maria Alice Gravina Instituto de Matemática da UFRGS

MINI-CURSO Geometria Espacial com o GeoGebra Profa. Maria Alice Gravina Instituto de Matemática da UFRGS MINI-CURSO Geometria Espacial com o GeoGebra Profa. Maria Alice Gravina gravina@mat.ufrgs.br Instituto de Matemática da UFRGS Neste minicurso vamos trabalhar com os recursos do GeoGebra 3D e discutir possibilidades

Leia mais

Banco de Dados Geográficos

Banco de Dados Geográficos Banco de Dados Geográficos Valéria Gonçalves Soares Professora DIMAp/UFRN Conteúdo Bancos de Dados Geográficos 1. Conceitos e Definições Características Gerais 2. Modelos de Dados Geográficos Modelos de

Leia mais

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti Introdução à Computação Gráfica Claudio Esperança Paulo Roma Cavalcanti Estrutura do Curso Ênfase na parte prática Avaliação através de trabalhos de implementação C / C++ OpenGL c/ GLUT Grau (nota) baseado

Leia mais

O Problema de Visibilidade. Computação Gráfica Recorte. Onde Acontece? O que é Recorte? Renato Ferreira

O Problema de Visibilidade. Computação Gráfica Recorte. Onde Acontece? O que é Recorte? Renato Ferreira O Problema de Visibilidade Computação Gráfica Recorte Renato Ferreira Numa cena tri-dimensional, normalmente não é possível ver todas as superfícies de todos os objetos Queremos descartar objetos ou partes

Leia mais

ESPECIFICAÇÃO DE SOFTWARE

ESPECIFICAÇÃO DE SOFTWARE ESPECIFICAÇÃO DE SOFTWARE Integrantes do grupo: Joel Edu Sánchez Castro Fernando Hattori Miguel Angel Galarreta Valverde Felipe Martins dos Santos 1 SUMÁRIO DESCRIÇÃO...3 REQUISITOS...3 REQUISITOS FUNCIONAIS

Leia mais

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais 2/60 Apresentação Introdução Pipeline de renderização Efeitos utilizando GPUs Shaders Como utilizar shaders Ferramentas Demos

Leia mais

Comentários e Exemplos sobre os Temas e seus Descritores da Matriz de Matemática de 4ª Série Fundamental

Comentários e Exemplos sobre os Temas e seus Descritores da Matriz de Matemática de 4ª Série Fundamental Comentários e Exemplos sobre os Temas e seus Descritores da Matriz de de 4ª Série Fundamental TEMA I ESPAÇO E FORMA A compreensão do espaço com suas dimensões e formas de constituição são elementos necessários

Leia mais

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real Fundamentos de Computação Gráfica Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real Renato Deris Prado Tópicos principais 1. Introdução e Objetivos Sistemas de visualização em tempo

Leia mais