Rasterização de linhas e polígonos
|
|
|
- Alessandra Felgueiras Leveck
- 10 Há anos
- Visualizações:
Transcrição
1 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
2 Algoritmo simples de linha (no primeiro octante) i = m i + b onde: m = / b = 1 - m 1 void Line(int 1, int 1, int 2, int 2, int color) float m = (2-1)/(2-1); float b = 1 - m*1; float ; SetPiel(1,1, color); = 1; while( 1 < 2 ) 1++; = m*1 + b; SetPiel(1,ROUND(), color); Algoritmo de linha incremental Se i+1 = i + 1 então i+1 = i + / void LineDDA(int 1, int 1, int 2, int 2, int color) float ; float m = (2-1)/(2-1); SetPiel(1,1, c); = 1; while( 1 < 2 ) 1++; += m; SetPiel(1,ROUND(), c); Rasterização de Primitivas 2
3 Algoritmo de linha baseado no erro void BresLine(int 1, int 1, int 2, int 2, int c) int D = 2-2; int D = 2-1; float e= -.5; erro de manter e = erro -.5 SetPiel(1, 1, c); while( 1 < 2 ) 1++; e+=d/d; if (e>=) 1++ ; e -= 1; SetPiel(1, 1, c); Algoritmo de Bresenham ei = 2*D*e void void BresLine(int BresLine(int 1, 1, int int 1, 1, void void BresLine1(int BresLine1(int 1, 1, int int 1, 1, int int 2, 2, int int 2, 2, int int c) c) int int 2, 2, int int 2, 2, int int c) c) int int D D = = ; 1; int int D D = = ; 1; int int D D = = ; 1; int int D D = = ; 1; float float e= e= -.5; -.5; int int ei ei = = -D; -D; SetPiel(1, SetPiel(1, 1, 1, c); c); SetPiel(1, SetPiel(1, 1, 1, c); c); while( while( 1 1 < < 2 2 )) while( while( 1 1 < < 2 2 )) 1++; 1++; e+=d/d; e+=d/d; 1++; 1++; ei ei += += 2*D; 2*D; if if (e>=) (e>=) if if (ei>=) (ei>=) ;; e e -= -= 1; 1; ;; ei ei -= -= 2*D; 2*D; SetPiel(1, SetPiel(1, 1, 1, c); c); SetPiel(1, SetPiel(1, 1, 1, c); c); válidos somente quando D>D, 2 > 1 e 2 > 1 Rasterização de Primitivas 3
4 Equação implícita da reta 2 1 F (, ) < F(, ) > n = ( d d) d = d + B 1 2 F(, ) = d. d. + B. d = F(, ) = a. + b. + c p +1/2 p NE M E p p+1 p+2 Algoritmo do ponto médio - variável de decisão - p +3/2 M NE p +1/2 NE M M E escolha NE F( M) = > escolha E p E p p+1 p+2 d = F( + 1, + ) = a( + 1) + b( + ) + c 1 1 p p 2 p p 2 E NE d = F( + 2, + ) = a( + 2) + b( + ) + c 1 1 new p p 2 p p 2 d = d + a new old d = F( + 2, + ) = a( + 2) + b( + ) + c 3 3 new p p 2 p p 2 d = d + a + b new old E = a NE = a + b Rasterização de Primitivas 4
5 Algoritimo do ponto médio - redução para inteiros - dstart = F( + 1, ) = a( + 1) + b( ) + c d start= F (, ) + a + b / 2 = a + b / 2 = a E NE = a + b d d 2. a b = 2. F (, ) start= + E NE = 2a ( a b) = 2 + Algoritimo do ponto médio - código C - void MidpointLine(int, int, int 1, int 1, int color) int d = 1-; int d = 1-; int d=2*d-d; /* Valor inicial da var. decisao */ int incre = 2*d; /* incremento p/ mover E */ int incrne = 2*(d-d); /* incremento p/ mover NE */ int =; int =; Piel(,,fgcolor); /* Primeiro piel */ while (<l) if (d<=) /* Escolha E */ d+=incre; ++; else /* Escolha NE */ d+=incrne; ++; ++; Piel(,,color); /* while */ /* MidpointLine */ Rasterização de Primitivas 5
6 void MidpointLine(int, int, int 1, int 1, int color) int d = 1-; int d = 1-; int d=2*d-d; /* Valor inicial da var. decisao */ int incre = 2*d; /* incremento p/ mover E */ int incrne = 2*(d-d); /* incremento p/ mover NE */ int =; int =; int stle[8]=1,1,,,1,1,,; int k=1; Piel(,,fgcolor) while (<l) if (d<=) /* Escolha E */ d+=incre; ++; else /* Escolha NE */ d+=incrne; ++; ++; if (stle[(++k)%8]) Piel(,,color); /* while */ /* MidpointLine */ Estilos de linha orientação Rasterização de Retas -caso geral outros quadrantes Rasterização de Primitivas 6
7 Rasterização de Cônicas F F(,) = = F F 45 simetrias do círculo: cada ponto calculado define 8 piels Rasterização de Cônicas =raio; for (=; < ; ++) if F(M)< escolha E else escolha SE Piel (E ou SE) pinte os simétricos E M SE M E M SE F(,) = Rasterização de Primitivas 7
8 Preenchimento de polígonos ma 1 4 dados:,, 1, 1, 2, 2, 3, 3, 4 4,, 1, 1, 2, 2, 3, 3, 4 4 s i1 i i4 i3 acha acha ma e ma e min min Para Para cada cada s s [ [ ma, ma, min ] min ] min 2 i1 i i4 i3 3 Para Para cada cada aresta aresta calcula as as interseções ordena interseções v= v= i1, i1, i, i, i4, i4, i3 i3 desenha linhas linhas horizontais Preenchimento de polígonos (scan passando por vértices) s 1 i i1 i2 i4 3 5 i3 2 4 inclui inclui vértices: i-i1, i-i1, i2-i3, i2-i3, i4-? i4-? não não inclui inclui vértices: i-? i-? s i 2 1 i1 i2 i4 3 i3 5 4 s 1 i Rasterização de Primitivas 8
9 Interseção nos vértices só só inclui inclui vértices de de menor menor : : i-i4 i-i4 ou só só inclui inclui vértices de de maior maior : : i-i1, i-i1, i2-i3 i2-i3 reta reta horizontal não não produz interseção Algoritmo de Fill void FillPolgon (int np, int *, int *) /* declarações */... /* calcula ma e min dos vértices*/... for(s=mim; s<=ma; s--) /* para cada linha de scan */ num_inters = ; for(i=; i<np; i++) /* para cada aresta */ i = [i]; f = [(i+1)%np]; if (i!=f && s >= MIN(i,f) && s < MAX(i,f) ) vs[num_inters] = [i] + (s-i)*([(i+1)%np]-[i])/(f-i); num_inters++; ordena(vs,,num_inters-1); /* ordena as interseções */ for (i=;i<num_inters;i+=2) if (vs[i]+1 <= vs[i+1]) ScanLine(vs[i],vs[i+1],s); Rasterização de Primitivas 9
10 Otimizações do algoritmo de fill ma = +d +d s+1 s d = 1 min 1 (ou z) Lista de Arestas d = (1-)/( ma - min ) struct edge int _ma; /* maior da aresta */ int _min; /* menor da aresta */ float s; /* correspondente a s */ /* (no início é o correspondente a _ma) */ float delta_s; /* incremento de s entre duas linhas de scan */ ; Algoritmo de Fill de Polígonos (Parte 1-Alocação de Memória) #define Ma(a,b) #define Min(a,b) (((a) > (b))? (a) : (b)) (((a) < (b))? (a) : (b)) void fill (int np, int *, int *) static struct edge *aresta=null; /* vetor de arestas */ static int *vs=null; /* vetor de interseções */ static int old_np=; /* número de pontos da última chamada */ int ma, min; /* limites do polígono */ int num_inters; /* num. de interseções */ int num_arestas; /* num. de arestas */ int s; /* ordenada da reta de scan */ int i; /* realoca os vetores de arestas e de interseções */ if (np > old_np) old_np=np; if (vs) free (vs); if (aresta) free (aresta); vs=(int *) malloc ((np-1)*sizeof(int)); /* ma num. De inters.*/ aresta=(struct edge *) malloc (np*sizeof(struct edge)); /* CONTINUA NA PARTE 2 */ Rasterização de Primitivas 1
11 Algoritmo de Fill de Polígonos (Parte 2-Lista de Arestas) /* PARTE 1*/ /* calcula ma e min e monta o vetor de arestas */ ma = []; min = []; num_arestas = ; for(i=;i<np;i++) int i1=(i+1)%np; if ([i]!= [i1]) aresta[num_arestas]._ma = Ma([i],[i1]); aresta[num_arestas]._min = Min([i],[i1]); aresta[num_arestas].delta = ((float)([i1]-[i])/ (float)([i1]-[i])); if (aresta[num_arestas]._mim == [i]) aresta[num_arestas].s = [i]; else aresta[num_arestas].a = [i1]; if (aresta[num_arestas]._ma > ma) ma = aresta[num_arestas]._ma; if (aresta[num_arestas]._min < min) min = aresta[num_arestas]._min; num_arestas++; /* CONTINUA NA PARTE 3 */ Algoritmo de Fill de Polígonos (Parte 3-Varredura) /* PARTES 1 E 2 */ for(s=min; s<ma; s++) /* para cada linha de scan */ num_inters = ; for(i=; i<num_arestas; i++) if (aresta[i]._ma < s) /* retira da lista de arestas */ aresta[i] = aresta[num_arestas-1]; num_arestas--; if((s>=aresta[i]._min)&&(s<aresta[i]._ma)) /* intersepta */ vs[num_inters] = aresta[i].s; aresta[i].s += aresta[i].delta; /* atualiza o s */ num_inters++; /* for */ ordena(vs,,num_inters-1); /* ordena as interseções */ for(i=;i<num_inters;i+=2) if (vs[i]+1 <= vs[i+1]) /* fill */ hline(vs[i],vs[i+1],s,ff); /* FIM */ Rasterização de Primitivas 11
12 Ordenação no Algoritmo de Fill static void ordena(int *vs, int left, int right) int i,j; int a; i = left; j = right; a = vs[(left + right)/2]; do while (vs[i] < a && i < right) i++; while (a < vs[j] && j > left) j--; if (i<=j) int b = vs[i]; vs[i] = vs[j]; vs[j] = b; i++;j--; while (i<=j); if (left < j) ordena(vs,left,j); if (i < right) ordena(vs,i,right); Caso Particular: Triângulo A c b B a C Rasterização de Primitivas 12
13 Stipples, patterns e imagens Stipple void SetPiel(int,int ) int i=(-)%w; int j=(-)%h; h = 5 if (stipple[i][j]) w = 5 Piel(,,foreground); else if (backopacit) Piel(,,background); Pattern void SetPiel(int,int ) color = pattern[(-)%w][(-)%h] Piel(,,color); Rasterização de Primitivas 13
Pipeline Gráfico Cluter & Durand, MIT
INF 1366 Computação Gráfica Interativa Rasterização Alberto B. Raposo e Marcelo Gattass [email protected] http://www.tecgraf.puc-rio.br/~abraposo/inf1366/index.htm Modeling Transformations Illumination
Prof. Julio Arakaki. Ciência da Computação
1 Primitivos gráficos - algoritmos Prof. Julio Arakaki 1 Algoritmos de reta Reta => infinitamente fina, ou seja, área = 0 Problemas para apresentação num monitor raster utilizando-se pixels: deve-se escolher
Primitivas Gráficas. Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com. Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof.
Primitivas Gráficas Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof. Robson Lins Traçado de Primitivas em Dispositivos Matriciais Conversão
Problema. Conversão Matricial. Octantes do Sistema de Coordenadas Euclidiano. Sistema de Coordenadas do Dispositivo. Maria Cristina F.
Problema Conversão Matricial Maria Cristina F. de Oliveira Traçar primitivas geométricas (segmentos de reta, polígonos, circunferências, elipses, curvas,...) no dispositivo matricial rastering = conversão
COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de 2009. Computação Gráfica
COMPUTAÇÃO GRÁFICA Rasterização e Preenchimento de Regiões Objetivos Conhecer os fundamentos da construção de linhas e círculos Conhecer o modelo scan-line modelo de sementes para preenchimento de polígonos
Computação Gráfica 04
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Computação Gráfica 04 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Computação Gráfica. Rasterização de Linhas Professora Sheila Cáceres
Computação Gráfica Rasterização de Linhas Professora Sheila Cáceres Equação da Reta Apresenta a seguinte lei de formação: y=f(x) = ax + b sendo a e b números reais e a diferente de zero. Observação: a
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
Pipeline de Visualização 2D
Pipeline de Visualização 2D André Tavares da Silva [email protected] 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
Preenchimento de Áreas e de Polígonos. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro
Preenchimento de Áreas e de Polígonos (Filled-Area Primitives) Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro Preenchimento de áreas é o processo de coloração do interior de uma
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
Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores
Introdução à Programação Armazenamento de Grande Quantidade de Informação Usando Vetores Armazenando Grande Quantidade de Informação Como armazenar tanta informação? Vetores! 2 Tópicos da Aula Hoje, aprenderemos
Primitivos gráficos - algoritmos
Primitivos gráficos - algoritmos Prof. Julio Arakaki 1 Algoritmos de reta Reta => infinitamente fina, ou seja, área = 0 Problemas para apresentação num monitor raster utilizando-se pixels: deve-se escolher
Computação Gráfica. Rasterização. Aula 4. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro
Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 4 Rasterização Representação Vetorial x Matricial Normalmente, gráficos são definidos através de primitivas
Imagem Vetorial x Imagem Matricial. Conversão Matricial de Primitivas Gráficas. Sistema de Coordenadas do Dispositivo. Problema
Conversão Matricial de Primitivas Gráficas Imagem Vetorial x Imagem Matricial Maria Cristina F. de Oliveira março 2009 2 Problema Traçar primitivas geométricas (segmentos de reta, polígonos, circunferências,
Algoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti
Métodos Computacionais. Fila
Métodos Computacionais Fila Definição de Fila Fila é uma estrutura de dados dinâmica onde: Inserção de elementos se dá no final e a remoção no início O primeiro elemento que entra é o primeiro que sai
INF 1007 Programação II
INF 1007 Programação II Aula 06 Tipos Estruturados Edirlei Soares de Lima Dados Compostos Até agora somente utilizamos tipos de dados simples: char, int, float, double. Muitas vezes
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
Primitivos gráficos - algoritmos
Primitivos gráficos - algoritmos Prof. Julio Arakaki 1 Algoritmos de reta Reta => infinitamente fina, ou seja, área = 0 Problemas para apresentação num monitor raster utilizando-se pixels: deve-se escolher
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11
ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Uma árvore binária é: uma árvore vazia; ou uma árvore onde qualquer
Métodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial.
Informática II Conteúdo 03 Prof. Dr. Leandro Alves Neves Sumário Rasterização Conceitos Fundamentais. Algoritmos de Conversão Matricial. Polígonos Construção e Preenchimento de polígonos com formas arbitrárias
Introdução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Busca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
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
Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos
Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS
INF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Conversão Matricial. Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected]. 20 de maio de 2011. SCC0250 - Computação Gráca
Conversão Matricial SCC0250 - Computação Gráca Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de
Desenho de Segmentos de Recta
Desenho de Segmentos de Recta Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Alg. para desenho de Segmentos de Recta - Motivação A maior parte das primitivas 2D, desenhadas centenas ou mesmo milhares
Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Pilhas Filas Deques Pilhas,,f filas e deques Vimos que as listas lineares admitem inserção e eliminação
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
Exemplos de utilização de primitivas (nível API) M.Próspero
Eemplos de utilização de primitivas (nível API)
Nesta aula iremos continuar com os exemplos de revisão.
Capítulo 8 Nesta aula iremos continuar com os exemplos de revisão. 1. Exemplos de revisão Exemplo 1 Ache a equação do círculo C circunscrito ao triângulo de vértices A = (7, 3), B = (1, 9) e C = (5, 7).
Expressões. Prof. Alberto Costa Neto [email protected]. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Expressão é uma frase de um programa que ao ser avaliada retorna um valor Tipos Literais Agregados Chamadas de Função
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é
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
10. Listas Encadeadas
10. Listas Encadeadas W. Celes e J. L. Rangel Para representarmos um grupo de dados, já vimos que podemos usar um vetor em C. O vetor é a forma mais primitiva de representar diversos elementos agrupados.
Algoritmos e Estruturas de Dados: Árvore Binária
Algoritmos e Estruturas de Dados: Árvore Binária Exemplo de árvore binária e são os filhos de Altura desta árvore é 4 é a raiz da sub-árvore esquerda de Rômulo Silva de Oliveira Departamento de Automação
Pesquisa Sequencial e Binária
Pesquisa Sequencial e Binária Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 20 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial
INF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8
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
Listas Lineares. continuando...
Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,
Estruturas (Registros)
Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso
Algoritmos e Programação II. Sobrecarga
Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque
Algoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
UNIVERSIDADE FEDERAL FLUMINENSE
UNIVERSIDADE FEDERAL FLUMINENSE Escola de Engenharia Industrial Metalúrgica de Volta Redonda PROVAS RESOLVIDAS DE CÁLCULO VETORIAL Professora Salete Souza de Oliveira Aluna Thais Silva de Araujo P1 Turma
Esboço de Gráficos (resumo)
Esboço de Gráficos (resumo) 1 Máximos e Mínimos Definição: Diz-se que uma função tem um valor máximo relativo (máximo local) em c se existe um intervalo ( a, b) aberto contendo c tal que f ( c) f ( x)
INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore
O mundo à nossa volta é povoado de formas as mais variadas tanto nos elementos da natureza como nos de objetos construídos pelo homem.
TRIDIMENSIONALIDADE O mundo à nossa volta é povoado de formas as mais variadas tanto nos elementos da natureza como nos de objetos construídos pelo homem. As formas tridimensionais são aquelas que têm
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Programação Estruturada I
Programação Estruturada I Introdução a Linguagem C Prof. Thiago Caproni Tavares 1 Prof. Mateus dos Santos 2 1 [email protected] 2 [email protected] Última Atualização:
Linguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Estruturas de Dados I
UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos [email protected] Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.
Universidade Federal do Vale do São Francisco. Estruturas de Dados. Professor: Marcelo Santos Linder E-mail: [email protected].
Universidade Federal do Vale do São Francisco Estruturas de Dados Professor: Marcelo Santos Linder E-mail: [email protected] Ementa Alocação dinâmica de memória; Vetores, pilhas, filas, listas:
INF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
PROVA P2 INF1007-31/10/2014 Programação II
ALUNO: MATRÍCULA: (Nome Completo em Letra de Imprensa) ASSINATURA: TURMA: Instruções Gerais: 1. A duração da prova é de 1:50h; 2. A tolerância de entrada é de 30 min após o início da prova. Se um aluno
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
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
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
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)
Algoritmos e Estruturas de Dados: Árvore Binária de Busca
Busca pelo nodo 72 Árvore Binária de Busca Introdução 2/21 Algoritmos e Estruturas de Dados: Árvore Binária de Busca 44 Raiz Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC [email protected]
Técnicas de Detecção de Colisão para Jogos
Técnicas de Detecção de Colisão para Jogos por Leandro Silva Técnicas de Detecção de Colisão para Jogos por: Gustavo Russo Zanardo Esse artigo visa mostrar as principais técnicas para detecção de colisão
%0/"1&2$&$3*$34+/!+&.05#!.62!+& #*+!&,&'-&"$.$"#/$&
!"#$%'()( %0/"12$$3*$34+/!+.05#!.62!+ #*+!,'-"$.$"#/$ 43#3)56(76'()( 48039:/;?8#/" @0/A$""/0; BC-2BBDEF!+GEGFFBEHIG #$.+)789:;?@ 8
Aula 3 Alocação Dinâmica
Aula 3 Alocação Dinâmica Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas de Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno
Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial
Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento
6. Geometria, Primitivas e Transformações 3D
6. Geometria, Primitivas e Transformações 3D Até agora estudamos e implementamos um conjunto de ferramentas básicas que nos permitem modelar, ou representar objetos bi-dimensionais em um sistema também
Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.
Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso
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
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações
Algoritmos e Estrutura de Dados II
Universidade Federal do Vale do São Francisco Algoritmos e Estrutura de Dados II Professor: Marcelo Santos Linder E-mail: [email protected] Ementa Árvores B, grafos e tabelas de hash: alocação
Curso de C. Memória Dinâmica 17/05/2010 16:33 1
Curso de C Memória Dinâmica 17/05/2010 16:33 1 Memória Dinâmica Curso C - IC/UNICAMP Roteiro: Memória dinâmica Vetores dinâmicos Listas ligadas 17/05/2010 16:33 @Arnaldo V. Moura, Daniel F. Ferber 2 Conceitos:
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
Programação com Posix Threads
9 Programação com Posix Threads Revisão: Data: 11-03-2016 Cap. 9 1/6 Programação multi-threaded com Pthreads 9.1. O que é uma thread? Um processo represente a execução pelo sistema operativo dum programa.
Universidade Federal do Paraná
Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Matematica Prof. Juan Carlos Vila Bravo Curitiba, 1 de Dezembro de 005 1. A posição de uma particula é dada por: r(t) = (sen t)i+(cost)j
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
A Linguagem Java. Alberto Costa Neto DComp - UFS
A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão
2. Constantes e Variáveis
2. Constantes e Variáveis Neste capitulo veremos como os dados constantes e variáveis são manipulados pela linguagem C. O que são constantes inteiras, reais, caracteres e strings. Quais são as regras de
Estruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
Árvore Binária de Busca
Árvore Binária de Busca 319 Árvore Binária de Busca! construída de tal forma que, para cada nó:! nós com chaves menores estão na sub-árvore esquerda! nós com chaves maiores (ou iguais) estão na subárvore
