Recorte e seleção de linhas e polígonos

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

Download "Recorte e seleção de linhas e polígonos"

Transcrição

1 Recorte e seleção de linhas e polígonos Motivações Clipping

2 mbiguidade na seleção Classes de lgoritmos Pontos Linhas Polígonos Clipping 2

3 Ponto em retângulo y y p 2.tol y m 2.tol m p int pontinrect(int m, int ym, float p, float yp, float tol return ( (p>=m-tol && (p<=m+tol && ( (yp>=ym-tol && (yp<=ym+tol ; Casos de clipping de linhas E ( 2, y 2 C ( 2, y 2 (, y D (, y Clipping 3

4 Códigos das regiões tbrl typedef typedef struct struct all; all; left; left; right; right; bottom; bottom; top; top; Outcode; Outcode; Cálculo do código de um vértice Outcode compoutcode(double, double y, double min, double ma, double ymin, double yma Outcode code; code.top = 0, code.bottom = 0, code.right = 0, code.left = 0, code.all = 0; if (y > yma code.top = ; code.all += 8; if(y < ymin code.bottom = ; code.all += 4; if ( > ma code.right = ; code.all += 2; if( < min code.left = ; code.all += ; return code; Clipping 4

5 lgoritmo de Cohen-Sutherland void CohenSutherlandLineClipndDraw(double 0, double y0, double, double y, double min, double ma, double ymin, double yma, int value outcode outcode0, outcode, outcodeout, CompOutCode(; double, y; boolean accept = FLSE, done = FLSE; outcode0 = CompOutCode(0, y0, min, ma, ymin, yma; outcode = CompOutCode(, y, min, ma, ymin, yma; do if (outcode0.all == 0 && outcode.all == 0 accept = TRUE; done = TRUE; /* trivial draw and eit */ if((outcode0.all & outcode.all!= 0 done = TRUE; /* trivial reject and eit */ if (outcode0.all!= 0 outcodeout = outcode0; outcodeout = outcode; if (outcodeout.top = 0 + ( - 0 * (yma - y0 / (y - y0; y = yma; if(outcodeout.bottom = 0 + ( - 0 * (ymin - y0 / (y - y0; y = ymin; if(outcodeout.right y = y0 + (y - y0 * (ma - 0 / ( - 0; = ma; if(outcodeout.left y = y0 + (y - y0 * (min - 0 / ( - 0; = min; if (outcodeout.all == outcode0.all 0 = ; y0 = y; outcode0 = CompOutCode(0, y0, min, ma, ymin, yma; = ; y = y; outcode = CompOutCode(, y, min, ma, ymin, yma; /* Subdivide */ while (!done; if (accept DrawLineReal(0, y0,, y, value; lgoritimo de Cyrus-eck (Liang-arsky N Ei P(t P 0 P P Ei ( Pt = P + ( P P t 0 0 [ ( Ei ] N P t P = 0 Ei Clipping 5

6 P 0 P lgoritimo de Cyrus-eck (Liang-arsky N Ei P 0 N [ ( ] P Ei P t PEi = 0 [ ( Ei ] N P t P > 0 Ei P Ei [ ( Ei ] N P t P < 0 Ei ( Pt = P+ ( P P t N 0 0 [ Pt ( P ] = 0 Ei Ei [ P0 PEi ] [ P P0] NEi t= N Ei Entrando ou Saindo? Ei N Ei [ ] N Ei P P0 < 0 PE Ei P P 0 N Ei [ ] N Ei P P0 > 0 PL Clipping 6

7 Cálculo das interseções P L P L P E C P L P L P L P E P E P L P E P E P E Cyrus-eck - caso geral Calcule Ni e escolha um PEi para cada aresta if(p = = P0 o segmento é degenerado e deve ser recortado como um ponto; te = 0; tl = ; for( cada aresta if (Ni.(P-P0!=0 /* aresta não é paralela ao segmento */ calcule t; use sign of Ni.(P-P0 para categorizar como PE ou PL; if( PE te = ma(te, t; if( PL tl = min(tl, t; /* aresta paralela ao segmento */ if (Ni.(P0-PEi > 0 /* está fora */ return nil; if(te > tl return nil; return P(tE and P(tL as true clip intersections; Clipping 7

8 y Liang e arsky - caso particular - y ma y min min ma Ei N Ei P Ei t left: = min (-, 0 ( min, y -( 0 - min ( - 0 right: = ma (, 0 ( ma, y bottom: y = y min (0,- (, y min top: y = y ma (0, (, y ma ( 0 - ma -( - 0 -(y 0 -y min (y -y 0 (y 0 -y ma -(y -y 0 Liang e arsky - Cálculo da interseção em uma fronteira - boolean Clipt(double den, double num, double *te, double *tl double t; if (den > 0 /* intersecao PE */ t = num/den; if (t > *tl /* te > tl */ return FLSE; if (t > *te *te = t; if (den < 0 /* intersecao PL */ t=num/den; if (t < *te /* tl < te */ return FLSE; if (t < *tl *tl = t; if (num > 0 /* linha esta fora */ return FLSE; return TRUE; Clipping 8

9 lgoritimo de Liang e arsky boolean Clip2D(double *0, double *y0, double *, double *y, double min, double ma, double ymin, double yma double d = * - *0; double dy = *y - *y0; boolean visible = FLSE; if (d==0&&(dy==0&&clippoint(*0,*y0,min,ma,ymin,yma visible=true; double te=0.0, tl=.0; if (Clipt(d,min-*0,&tE,&tL if (Clipt(-d,*0-ma,&tE,&tL if (Clipt(dy,ymin-*y0,&tE,&tL if (Clipt(-dy,*y0-yma,&tE,&tL visible=true; if (tl<.0 (*=(*0+tL*d; (*y=(*y0+te*dy; if (te>0.0 (*0=(*0+tE*d; (*y0=(*y0+te*dy; return visible; Clipping de polígonos (Hodgman - Sutherland Clip contra uma aresta (plano de cada vez Clipping 9

10 Clipping de polígonos (Hodgman & Suterland Para cada aresta (plano teste um segmento de cada vez Eistem quatro casos possiveis para um vértice e seu antessessor interno saindo eterno entrando S P S I P P P I S S guarde P guarde II guarde I, I, P (a (b (c (d Cálculo de interseção pela distância y (, y d n y ma y min d = d = t = 0 0 d0 d d ma ma 0 min d 0 ma ( 0, y 0 = + t ( 0 0 y = y + t ( y y 0 0 Clipping 0

11 Clipping de polígonos (Eemplo S P ção store,3 3 4 store store store 6 Clipping de polígonos (Eemplo D C 5 4 S P ção 2 store store,4 4 5 store store C 6 store D, D C 5 4 Clipping

12 D 5 Clipping de polígonos (Eemplo 2 C E F 4 S P ção store 4 store E 4 5 store F,5 5 C store C C D store D D store store, E, F, 5, 5, C, D,,, D C 5 Clipping de polígonos (Concatenação de planos D C E 5 F 4 D C E D 5 C 4 first[0] S[0] P[0] first[] S[] P[] 5 F,,,, E, F, 5, 5, C, D Clipping 2

13 PIs para definição de polígonos int int npoints; npoints; double double [MXPOINTS], [MXPOINTS], y[mxpoints]; y[mxpoints]; FillPoly(npoints, FillPoly(npoints,,, y; y; Point Point verte[mxpoint] verte[mxpoint] FillPoly(npoints, FillPoly(npoints, verte verte egin(fill; egin(fill; Verte(30.,20.; Verte(30.,20.; Verte(5.,8.; Verte(5.,8.; End( End( ; ; Distâncias as bordas das janelas y y ma y min min ma double Distance( double, double y, int plane switch( plane case 0: return( - + min ; case : return( - ma ; case 2: return( -y + ymin ; case 3: return( y - yma ; return( 0.0 ; Clipping 3

14 Teste de interseção com uma fronteira void Intersect(double, double y, int plane, double d, double d2 double t = d / (d - d2; double i = s[plane] + t * ( - s[plane]; double yi = sy[plane] + t * (y - sy[plane]; if( plane == LST_PLNE SaveVerte( i, yi; CliptPlane( i, yi, plane+ ; Clipping de polígonos de Sutherland-Hodgman void CliptPlane( double, double y, int plane double d = Distance(, y, plane; /* Check whether it is the first point */ if( first[plane] f[plane] = ; fy[plane] = y; fd[plane] = d; first[plane] = 0; if ((sd[plane] < 0 ^ (d < 0 Intersect(, y, plane, sd[plane], d ; /* Save as previous */ s[plane] = ; sy[plane] = y; /* Check whether it is a visible point */ if( d <= 0.0 if( plane == LST_PLNE SaveVerte(, y; CliptPlane(, y, plane+ ; Clipping 4

15 Ligando com a PI void void Verte( Verte( double double,, double double y y if if (clip_on_off (clip_on_off CliptPlane( CliptPlane(,, y, y, 0 0 ; ; SaveVerte(, SaveVerte(, y; y; void void ClipClose( ClipClose( int int plane plane if if ((sd[plane] ((sd[plane] < < 0 0 ^ ^ (fd[plane] (fd[plane] < < 0 0 Intersect( Intersect( f[plane], f[plane], fy[plane], fy[plane], plane, plane, sd[plane], sd[plane], fd[plane] fd[plane] ; ; first[plane] first[plane] = = ; ; if( if( plane plane == == LST_PLNE LST_PLNE FillSavedPolygon(; FillSavedPolygon(; ClipClose( ClipClose( plane+ plane+ ; ; Em coordenadas homogêneas /* ===================== Distance ====================== ** ** This function computes and returns the distance between a ** point and a plane. Normal points toward out. */ double Distance(double, double y, double z, double w, int plane switch( plane case 0: return( -w - ; case : return( -w + ; case 2: return( -w - y ; case 3: return( -w + y ; case 4: return( -w - z ; case 5: return( -w + z ; return( 0.0 ; Clipping 5

Pipeline Gráfico. Clipping (Recorte) Por que o recorte? INF 1366 Computação Gráfica Interativa. Clipping (Recorte)

Pipeline Gráfico. Clipping (Recorte) Por que o recorte? INF 1366 Computação Gráfica Interativa. Clipping (Recorte) Modeling Transformations Pipeline Gráfico INF 1366 Computação Gráfica Interativa Clipping (Recorte) Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm

Leia mais

Pipeline Gráfico Cluter & Durand, MIT

Pipeline Gráfico Cluter & Durand, MIT INF 1366 Computação Gráfica Interativa Clipping (Recorte) Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm Modeling Transformations

Leia mais

Recorte. Edward Angel, Cap. 7. Instituto Superior Técnico Computação Gráfica 2009/2010

Recorte. Edward Angel, Cap. 7. Instituto Superior Técnico Computação Gráfica 2009/2010 Recorte Edward Angel, Cap. 7 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Remoção de Faces Traseiras Back-face Culling Recorte Cohen-Sutherland Sumário Recorte 2D Paramétrico

Leia mais

RECORTE (CLIPPING) por janelas rectangulares

RECORTE (CLIPPING) por janelas rectangulares RECORTE (CLIPPING) por janelas rectangulares y max y min x min x max i. PONTOS P(x,y) é visível se não for exterior à janela x x max x x min y y max y y min ii. LINHAS (segmentos de recta) PQ é visível

Leia mais

Algoritmos de Rasterização e Recorte

Algoritmos de Rasterização e Recorte Algoritmos de Rasterização e Recorte 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 1 Desenhando linhas Sequência de pixels deve estar o mais próximo possível da linha original Quais propriedades

Leia mais

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

Introdução à Computação Gráfica Recorte. Claudio Esperança Paulo Roma Cavalcanti Introdução à Computação Gráfica Recorte Claudio Esperança Paulo Roma Cavalcanti O Problema de Recorte Dada uma superfície M fechada de codimensão 1 do R n, o complemento de M, (R n -M), possui duas componentes

Leia mais

Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse

Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse Rasterização de primitivas 2D e Pipeline 2D Soraia Raupp Musse Algoritmos de rasterização para primitivas 2D Objetivo: Aproximar primitivas matemáticas descritas através de vértices por meio de um conjunto

Leia mais

Recorte. Márcio Bueno Fonte: Material do Prof. Claudio Esperança e do Prof. Paulo Roma Cavalcanti

Recorte. Márcio Bueno Fonte: Material do Prof. Claudio Esperança e do Prof. Paulo Roma Cavalcanti Recorte Márcio Bueno {cgtarde,cgnoite}@marciobueno.com) Fonte: Material do Prof. Claudio Esperança e do Prof. Paulo Roma Cavalcanti O Problema de Visibilidade Numa cena tri-dimensional, normalmente não

Leia mais

Recorte. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Recorte. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Recorte Edward Angel, Cap. 7 Apontamentos CG Matéria Primeiro Teste 26 de Outubro 2013 Tudo até Sombreamento (inclusivé) 26/10-9h00

Leia mais

Pipeline de Visualização 2D

Pipeline de Visualização 2D Pipeline de Visualização 2D André Tavares da Silva andre.silva@udesc.br Capítulo 2 do Foley Requisitos de matemática para CG Vetores e pontos Matrizes Transformações geométricas Pontos e espaços afim Representação

Leia mais

Visualização 2D. Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse

Visualização 2D. Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse Visualização 2D Rasterização de primitivas 2D e Pipeline 2D Soraia Raupp Musse Qual o problema? Modelo 2D Display Qual o problema? Modelo 2D Dados matemáticos Display Coordenadas de pixels Algoritmos de

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

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

Algoritmos de Varrimento para Desenho de Primitivas 2D

Algoritmos de Varrimento para Desenho de Primitivas 2D Algoritmos de Varrimento para Desenho de Primitivas 2D 24T12 Sala 3F5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 327 1 Desenhando linhas Sequência de pixels deve estar o mais próximo possível da linha

Leia mais

de Recta e Polígonos

de Recta e Polígonos Mário Rui Gomes Computação Gráfica 1 Recorte de Segmentos de Recta e Polígonos 1.1 Introdução Relembrando os andares do pipeline de visualização, podemos verificar que no andar anterior foi efectuada a

Leia mais

Computação Gráfica e Processamento de Imagens. recorte ( clipping ) de : o segmentos de retas o polígonos o textos. Prof.

Computação Gráfica e Processamento de Imagens. recorte ( clipping ) de : o segmentos de retas o polígonos o textos. Prof. recorte ( clipping ) de : o segmentos de retas o polígonos o textos Prof. Julio Arakaki 2005 1 Recorte ( clipping ) Ponto Processo de visualização que leva em conta apenas o conteúdo da janela de desenho.

Leia mais

Computação Gráfica Módulo III Geometria

Computação Gráfica Módulo III Geometria Computação Gráfica Módulo III Geometria UniverCidade - Prof. Ismael H F Santos April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br Considerações Gerais Objetivo: Discutir os principais conceitos

Leia mais

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

Prof. Fernando V. Paulovich  3 de maio de SCC Computação Gráca Viewing Pipeline 2D 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 de

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

Introdução ao Processamento e Síntese de imagens Recorte 2D

Introdução ao Processamento e Síntese de imagens Recorte 2D 1 Introdução ao Processamento e Síntese de imagens Recorte 2D Fontes: Rogers, D. F. Procedural Elements for Computer Graphics Traina, A. J. M. & Oliveira, M. C. F. (2004) 2016 2 Recorte - (Clipping) Numa

Leia mais

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores Computação Gráfica 5385: Licenciatura em Engenharia Informática Cap. 3 Janelas e Visores Janelas e Visores Sumário Definições domínio de imagem (ecrã) janela de ecrã domínio da cena (IR 2 ) janela visor

Leia mais

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz MAC122 rincípios de Desenvolvimento de Algoritmos Lista de exercícios 01 rof.: aulo Miranda Instituto de Matemática e Estatística (IME) Universidade de São aulo (US) Alocação Dinâmica & Matrizes Questão

Leia mais

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Prova de Programação (21090) Data: 31 de Janeiro de 2008 Ministério da Ciência, Tecnologia e Ensino Superior Curso:... Prova de Programação (21090) Data: 31 de Janeiro de 2008 Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:... RESERVADO PARA

Leia mais

Tipo de Dados em Linguagem C

Tipo de Dados em Linguagem C Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa

Leia mais

Rasterização de linhas e polígonos

Rasterização de linhas e polígonos Rasterização de linhas e polígonos Algoritmos de rasterização de linhas Suponha > incrementa e vê o que acontece com = 5, =3 incrementa e vê o que acontece com Rasterização de Primitivas 1 Algoritmo simples

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

Módulo 8 Tipos Estruturados

Módulo 8 Tipos Estruturados Estruturas de Dados Módulo 8 Tipos Estruturados 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark º Exame 29 Junho de 2 O exame tem a duração de 2h3, tolerância incluída. Responda às questões unicamente nestas

Leia mais

Algoritmos de Recorte em 2D

Algoritmos de Recorte em 2D Algoritmos de Recorte em 2D Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc. Sumário Conceito de Recorte (Clipping) Introdução Algoritmo simples (Força Bruta) Algoritmo de Cohen-Sutherland

Leia mais

Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003

Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003 Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003 I. Introdução 1) Qual a diferença entre Processamento de Imagens, Visão Computacional

Leia mais

Testes de correção (de defeitos)

Testes de correção (de defeitos) Testes de correção (de defeitos) Revelam a presença de erros, mas NÃO a ausência Um teste bem sucedido é aquele que descobre o maior número de erros existentes. Deve ser utilizado em conjunto com técnicas

Leia mais

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Fontes Bibliográficas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Aliasing Exemplo. Representação Vetorial x Matricial. Introdução ao Processamento e Síntese de imagens - Rasterização. Considerações Gerais

Aliasing Exemplo. Representação Vetorial x Matricial. Introdução ao Processamento e Síntese de imagens - Rasterização. Considerações Gerais Representação Vetorial x Matricial Introdução ao Processamento e Síntese de imagens - Rasterização Fontes: IA725 Computação Gráfica I - Profs. Shin-Ting e Martino Esperança e Cavalcanti (2002) (UFRJ) e

Leia mais

1 Para expressar um ponto intermediário em função dos pontos extremos, precisamos

1 Para expressar um ponto intermediário em função dos pontos extremos, precisamos Resolução da Primeira Lista de Exercícios de Fundamentos de Computação Gráfica INF01047 Carlos Eduardo Ramisch Cartão 134657 Turma B Prof.ª Luciana Porcher Nedel Porto Alegre, 03 de abril de 2006. 1 Para

Leia mais

Fontes Bibliográficas. Listas Circulares. Função Imprime

Fontes Bibliográficas. Listas Circulares. Função Imprime Fontes Bibliográficas Estruturas de Dados Aula 12: Outras Implementações de Listas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um

Leia mais

Geometria Computacional

Geometria Computacional Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Universidade Federal do Espírito Santo CCA UFES Geometria Computacional Tópicos Especiais em Programação

Leia mais

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A

Introdução aos Algoritmos e Estruturas de Dados. 2 o Teste - A Ano Lectivo 2017/2018 2 o Semestre Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A Data: 20 de Junho de 2018 Duração: 1h30m RESOLUÇÃO I. (2,0 + 2,0 + 2,0 + 2,0 = 8,0 val.) I.a) Considere

Leia mais

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

Leia mais

Filas Implementação Sequencial

Filas Implementação Sequencial SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção

Leia mais

Programação Estruturada I

Programação Estruturada I Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 thiago.tavares@ifsuldeminas.edu.br 2 mateus.santos@ifsuldeminas.edu.br Última Atualização:

Leia mais

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais

Leia mais

Ponto em Polígono. António Leslie Bajuelos Departamento de Matemática Universidade de Aveiro

Ponto em Polígono. António Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Ponto em Polígono António Leslie Bajuelos Departamento de Matemática Universidade de Aveiro Preliminares Uma curva poligonal (ou cadeia poligonal) é uma sequência finita v 0, e 0, v,, e n-2, v n-, e n-

Leia mais

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática

Leia mais

Pipeline Gráfico Cluter & Durand, MIT

Pipeline Gráfico Cluter & Durand, MIT INF 1366 Computação Gráfica Interativa Rasterização Alberto B. Raposo e Marcelo Gattass abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm Modeling Transformations Illumination

Leia mais

Módulo 10 Listas Encadeadas

Módulo 10 Listas Encadeadas Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável

Leia mais

Métodos Computacionais. Variações de Listas Encadeadas

Métodos Computacionais. Variações de Listas Encadeadas Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos

Leia mais

INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4 INF1 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4 1. Considere uma aplicação que utiliza pontos, retângulos e círculos para representações gráficas. Um ponto é composto pelas suas coordenadas x e y, um retângulo

Leia mais

MsC. João Maria MsC. Liviane Melo

MsC. João Maria MsC. Liviane Melo Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance

Leia mais

Remoção de Faces Traseiras Recorte

Remoção de Faces Traseiras Recorte Remoção de Faces Traseiras Recorte Edward Angel, Cap. 7 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na última aula... Câmara Virtual Simples Transformação de Visualização Volumes canónicos

Leia mais

Grafos - Representação

Grafos - Representação 466 A representação ligada poderia ser alterada de modo a incluir duas listas emanando de cada nó de cabeçalho: uma para os arcos emanando do nó de grafo e outra para os arcos terminando no nó de grafo.

Leia mais

Objetos definidos no seu próprio sistema de coordenadas

Objetos definidos no seu próprio sistema de coordenadas Transformações Modelagem Iluminação (Shading) Transformação Câmera A história até aqui Recorte Projeção Rasterização Visibilidade Transformações Modelagem Iluminação (Shading) Transformação Câmera Recorte

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

10. - ESTRUTURAS Características Básicas

10. - ESTRUTURAS Características Básicas 102102102102102102102102102102102102102102102102102102 10. - ESTRUTURAS 10.1 - Características Básicas Coleção de uma ou mais variáveis que podem ser de diferentes tipos, agrupadas sob um mesmo nome. Também

Leia mais

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos Computação I - C Prova 2 2016-2 14/10/2016 - Profs. Adriano Cruz e Valeria Bastos Nome: DRE: Observação: Justifique todas as respostas dadas. Some nte serão aceitas respostas com justificativas. Questão

Leia mais

Calculando distâncias

Calculando distâncias Calculando distâncias Problema: dados um digrafo G e um vértice s, determinar a distância de s aos demais vértices do digrafo Exemplo: para s = v 3 5 dist[v] 3 3 5 Algoritmos em Grafos º sem / Busca em

Leia mais

Algoritmo de Dijkstra

Algoritmo de Dijkstra lgoritmo de Dijkstra Caminhos mínimos em Grafos Considere um grafo orientado ponderado G = (V,E) em que cada aresta possui um rótulo não negativo associado que define o custo da aresta, e um dos vértices

Leia mais

Cap. 4: Janelas, Visores & Recorte Gráfico

Cap. 4: Janelas, Visores & Recorte Gráfico Cap. 4: Janelas, Visores & Recorte Gráfico Sumário Definições básicas: sistema de coordenadas globais, sistema de coordenadas do ecrã; janela de domínio de cena; janela de interface e visores de saída

Leia mais

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores

Leia mais

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19 Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar

Leia mais

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Expressões e Comandos Prof. Tiago Alves de Oliveira Expressões Uma expressão é uma frase do programa que necessita ser avaliada e produz como resultado um

Leia mais

Geometria COM11087-Tópicos Especiais em Programação II

Geometria COM11087-Tópicos Especiais em Programação II Geometria COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Geometria é uma disciplina inerentemente uma disciplina visual. Desenhar figuras e analisá-las. Algumas operações

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Funções Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO 1 #include void calc_area_quadrado(); void calc_area_triang_ret(); Funções e variáveis globais void calc_area_quadrado

Leia mais

Exemplo Tipos Abstratos de Dados TADs Disciplina: Semestre: Turma: Professor: Renata de Matos Galante matricula nome

Exemplo Tipos Abstratos de Dados TADs Disciplina: Semestre: Turma: Professor: Renata de Matos Galante matricula nome Tipos Abstratos de Dados TADs Renata de Matos Galante Universidade Federal do Rio Grande do Sul Instituto de Informática INF 01203 Estruturas de Dados galante@inf.ufrgs.br Eemplo Folha de freqüência Disciplina:

Leia mais

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. 1º Exame 6 de Junho de 2011

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. 1º Exame 6 de Junho de 2011 Computação Gráfica Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark 1º Exame 6 de Junho de 2011 O exame tem a duração de 2h30, tolerância incluída. Responda às questões no espaço

Leia mais

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos

Linguagens de Programação Conceitos e Técnicas. Expressões e Comandos Linguagens de Programação Conceitos e Técnicas Expressões e Comandos Expressões Uma expressão é uma frase do programa que necessita ser avaliada e produz como resultado um valor Elementos Operadores Operandos

Leia mais

Estruturas Compostas Parte II

Estruturas Compostas Parte II Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida

Leia mais

Exemplos de utilização de primitivas (nível API) M.Próspero

Exemplos de utilização de primitivas (nível API) M.Próspero Eemplos de utilização de primitivas (nível API)

Leia mais

Tipos Abstratos de Dados - Exercício

Tipos Abstratos de Dados - Exercício Tipos Abstratos de Dados - Exercício void somar_racionais (RACIONAL *a, RACIONAL *b, RACIONAL *c) c->num = a->num * b->den + b->num * a->den; c->den = a->den * b->den; int equivalencia_racionais (RACIONAL

Leia mais

Revisão Linguagem C Parte 1

Revisão Linguagem C Parte 1 Revisão Linguagem C Parte 1 Comentários: Os comentários aparecem em verde e podem iniciados com /* e encerrados com */ quando utilizase várias linhas ou coloca-se // quando forem colocados em apenas uma

Leia mais

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria USP - ICMC - SSC SSC 0501-1o. Semestre 2011 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com } Página Pessoal:

Leia mais

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Linguagem Algorítmica OO. Linguagem Algorítmica

Linguagem Algorítmica OO. Linguagem Algorítmica UFSC-CTC-INE INE5384 - Estruturas de Dados Linguagem Algorítmica OO Prof. Ronaldo S. Mello 2002/2 Linguagem Algorítmica Independente de linguagem de programação OO Utilizada para: Exemplificar os algoritmos

Leia mais

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:

Leia mais

Revisão. Soraia Raupp Musse

Revisão. Soraia Raupp Musse Revisão Soraia Raupp Musse Processamento Gráfico Modelagem Multimídia RV Usuário Visão Modelos Gráfico Tempo Animação Vídeo Imagens Processamento de Imagens Processamento de Imagens Modelagem Multimídia

Leia mais

Básico: estrutura de programa, sintaxe Interface com linha de comando

Básico: estrutura de programa, sintaxe Interface com linha de comando Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências

Leia mais

Grafos - Representação

Grafos - Representação Grafos - Representação É importante salientar outra diferença relevante entre a representação de matriz de adjacência e a representação ligada de grafos. Na representação de matriz está implícita a possibilidade

Leia mais

Implementação do TAD DiGrafo Ponderado usando Matriz de Adjacência. Profa. Dra. Denise Guliato FACOM - UFU

Implementação do TAD DiGrafo Ponderado usando Matriz de Adjacência. Profa. Dra. Denise Guliato FACOM - UFU Implementação do TAD DiGrafo Ponderado usando Matriz de Adjacência Profa. Dra. Denise Guliato FACOM - UFU Tipo do dado typedef int TipoPeso; typedef int TipoVertice; struct grafo ; int NumVertices; int

Leia mais

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD)

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD) Programação de Computadores II Cap. 9 Tipos Abstratos de Dados (TAD) Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica) SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

Programação de Computadores II. Cap. 17 Busca

Programação de Computadores II. Cap. 17 Busca Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR PIC - PROGRAMAÇÃO LINGUAGEM C AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br UBERABA MG 1º SEMESTRE 2009 FLUXOGRAMAS FLUXOGRAMAS Fluxograma para somar dois números e guardar em uma terceira

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

Leia mais

Características da Linguagem C

Características da Linguagem C Características da Linguagem C Na aula passada, foi implementado o exemplo utilizado do reajuste salarial O resultado impresso pode ser visualizado da seguinte forma: Características da Linguagem C Introdução

Leia mais

Aula 06 Definição de Novos Tipos (structs, typedefs, e enumerações) Prof. Filipe Mutz

Aula 06 Definição de Novos Tipos (structs, typedefs, e enumerações) Prof. Filipe Mutz Aula 06 Definição de Novos Tipos (structs, typedefs, e enumerações) Prof. Filipe Mutz 1 Estruturas (structs) Estruturas (structs) são usadas para criar novos tipos de dados pelo agrupamento de informações.

Leia mais

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários

SCC 202 Prova 1. 28/9/2010 Resolução e Comentários SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?

Leia mais

1º Exame Computação Gráfica

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

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Visualização 3D. Soraia Raupp Musse

Visualização 3D. Soraia Raupp Musse Visualização 3D Soraia Raupp Musse 1 Pipeline de Visualização Em 2D as coisas são mais simples Simplesmente especificar uma janela do mundo 2D e uma viewport na superfície de visualização A complexidade

Leia mais

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

TE091 Programação Orientada a Objetos Engenharia Elétrica

TE091 Programação Orientada a Objetos Engenharia Elétrica TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos

Leia mais