Baixe o app para aproveitar ainda mais
Prévia do material em texto
A reprodução convencional de imagens é matricial, Pixels são pontos dessa matriz; resolução é a quantidade total de pixels dessa matriz, profundidade é o tamanho em bits para cada pixel; resolução espacial refere-se a quantidade de pixels por unidade física (dpi); A primeira desvantagem é que toda imagem vetorizada precisa ser rasterizada, ou seja processada e a consequência, também desvantagem, é o problema de aliasing para resoluções muito pequenas. As vantagens são o poder de manipulação dos vetores e a alta definição para qualquer tamanho superior ao mínimo; Coeficiente linear da reta representa o ponto de interseção com o eixo vertical e o coeficiente angular representa a tangente do ângulo entre a reta e o eixo horizontal. O o valor do coeficiente angular pode definir qual dos eixos possuem maior movimento. O algoritmo DDA calcula cada ponto da reta a partir do anterior, enquanto o Bresenhm calcula a partir do ponto médio. A aplicação faz chamadas a API OpenGl, que são colocados em um buffer de comandos e quando processado, é esvaziado e os dados são passados para a etapa de rasterizacao, ou quando necessário para a etapa de transformações geométricas e da iluminação. Com a etapa de rasterização completada, a imagem é passada para frame buffer, que é a memoria do dispositivo gráfico. Fornecer uma biblioteca de rotinas e modelagem gráficas 2D e 3D, de forma simples e rápida, pois os algoritmos foram desenvolvidos especificamente para tal fins. glViewPort define a quantidade de pixel na tela e glOrtho determina a projeção ortográfica; ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ glutTimerFunc – callback a cada intervalo de tempo glutKeyboardFunc – callback quando eventos do teclado são disparados glutMouseFunc – callback quando eventos do mouse são disparados ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ PC = 65.536 =2ⁿ => n = 16 = B | P = 1600x1200 = 192x10⁴ || bits = P x B = 3072 A resolução espacial horizontal e espacial é de 13,3 pixel/mm; x/300 = 10 => x=3000 || y/210 =10 => y=2100 || 3000x2100 (V) (F) - |a|>1 é de uma reta com variações de y maiores q a de x, então o eixo dos y é o de maior movimento (F) – Geralmente os arquivos possuem tamanho menor e demandam mais tempo para serem exibidos, pois precisam passar pelo processo de rasterizando, (F)- y=1 é perpendicular, já 2y+4x=1 tem |a|>1 portanto não é perpendicular (__)_________________________________________________________________________________________________________________________________________________________________________________________________________________ A C ___ ___ void Questao5(int x1_, int y1_, int x2_, int y2_){ float DX = x2_ - x1_; float DY = y2_ - y1_; float pAx = x1_ + (DX/2); float pAy = y1_; float pBx = x1_; float pBy = y1_ + (DY/2); float pCx = pAx; float pCy = y2_; float pDx = x2_; float pDy = pBy; glBegin(GL_LINE_LOOP); glVertex2i(pAx,pAy); glVertex2i(pBx,pBy); glVertex2i(pCx,pCy); glVertex2i(pDx,pDy); glEnd(); } Não, pois a só existe instrução para DX e DY diferente de 0; Sim Não, pois o loop se inicia em 1 e o padrão é aumentando valor; Sim Aluno: Rafael das Mercês Canellas Guilherme da Silva Mat: 20101102933 (BÔNUS) #include <GL/glut.h> #include <stdlib.h> int x1 = 10, y1 = 10, x2 = 150, y2 = 150; void init(void); void display(void); void keyboard(unsigned char key, int x, int y); void DesenhaReta(int x1_, int y1_, int x2_, int y2_); int main(int argc, char** argv){ glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (256, 256); glutInitWindowPosition (100, 100); glutCreateWindow ("Desenhando uma linha"); init(); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; } void init(void){ glClearColor(1.0, 1.0, 1.0, 1.0); glOrtho (0, 256, 0, 256, -1 ,1); } void display(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f (0.0, 0.0, 0.0); DesenhaReta(x1,y1,x2,y2); glFlush(); } void keyboard(unsigned char key, int x, int y){ switch (key) { case 27: exit(0); break; } } void DesenhaReta(int x1_, int y1_, int x2_, int y2_){ int DX = (x2_ - x1_); int DY = (y2_ - y1_); int Ax; int Ay; int DA; int X; int Y; int i; if(DY > DX){ if(DX != 0){ Ax = DX/DY; Ay = DY/DY; DA = DY; } }else{ if(DY != 0){ Ax = DX/DX; Ay = DY/DX; DA = DX; } } X = x1_; Y = y1_; glBegin(GL_POINTS); for(i=1; i<=DA;i++){ glVertex2i(X,Y); X = X+Ax; Y = Y+Ay; } glEnd(); }
Compartilhar