1. Introdução Triangulação de Delaunay Algoritmo quadrático Métodos Utilizados Resultados...
|
|
- Luciana Caminha Farias
- 6 Há anos
- Visualizações:
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 Disciplina de Visualização Científica Mestrado em Métodos Computacionais em Ciências e Engenharia
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
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:»
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
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)
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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,
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,
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:
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
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
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
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
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
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
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'
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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,
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
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
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
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
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.
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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