1 / 40

Computação Gráfica – Modelagem Geométrica

Computação Gráfica – Modelagem Geométrica. Profa. Mercedes Gonzales Márquez. Curvas Superfícies Técnicas principais de Modelagem Geométrica. Tópicos. Curvas e Superfícies - Introdução.

misha
Download Presentation

Computação Gráfica – Modelagem Geométrica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computação Gráfica – Modelagem Geométrica Profa. Mercedes Gonzales Márquez

  2. Curvas Superfícies Técnicas principais de Modelagem Geométrica Tópicos

  3. Curvas e Superfícies - Introdução • Estuda-se dentro do escopo da Modelagem Geométrica. Curvas são a base, tanto da geração de formas simples, como círculos e elipses, quanto na criação de projetos complexos como automóveis, navios, aeronaves ou até mesmo faces e corpos humanos.

  4. Introdução • Curvas e superfícies desempenham um papel importante em várias áreas, como criação de objetos e visualização de fenômenos científicos. • Com frequência representamos uma curva como uma sucessão de linhas retas. Em outras aplicações mais complexas escolhemos um conjunto de pontos de controle e definimos uma curva que passe por eles.

  5. Representação de Curvas • A representação analítica de curvas pode usar ou não parâmetros, sendo classificados como B.1. paramétricas B.2. não-paramétricas • As formas não-paramétricas podem ser, ainda, B.2.1. explícitas B.2.2. implícitas.

  6. Representação de Curvas B.1 Formas paramétricas • As coordenadas são dadas em termos de um (conjunto) de parâmetros. Usa-se um parâmetro (t, , etc.) para definir as coordenadas dos pontos da curva. P(t) = (x(t), y(t)) Exemplos:

  7. Representação de Curvas B.1 Formas paramétricas P(t) = (x(t), y(t)) Exemplos:

  8. Representação de Curvas B.1. Formas paramétricas P(t) = (x(t), y(t)) Exemplos:

  9. Representação de Curvas B.2. Formas não-paramétricas Não há parâmetros e uma coordenada da curva é dada em função da outra, ou seja y = f(x) ou x = f(y) • Exemplos: 1) Equação de um semi-círculo de raio 2 • 2) Equação de uma reta • y = 2x – 1 ou x = ½ (y + 1)

  10. Representação de Curvas B.2.1 Forma não-paramétrica explícita : É dada por uma equação do tipo y = f(x), ou seja uma das coordenadas é explicitamente dada em função das outras. Exemplos: 1) Equação genérica explícita de uma parábola: y = ax2 + bx + c 2) Equação de uma reta y = mx + b 3) Polinômios: P(x) = anxn + an-1xn-1 + ... + a2x2 + a1x1 + a0

  11. Representação de Curvas • Obtém-se um valor de y para cada valor de x dado.

  12. Representação de Curvas • B.2.2. A Forma não-paramétrica implícita não tem essa limitação. Nela as coordenadas são relacionadas por uma função. A sua forma é f(x,y)=0 ou f(x,y,z)=0. • Exemplo: x2 + y2 = R2, f(x,y)= x2 + y2 - R2= 0

  13. Representação de Curvas • Exemplo: seções cônicas. ax2 + bxy + cy2 + dx + ey + f = 0 • Essa expressão representa a variedade de curvas planas denominadas seções cônicas. Essas curvas (cinco) são obtidas pelo corte de um cone por um plano, resultando em: círculo, elipse, parábola, hipérbole, reta.

  14. Representação de Curvas

  15. Representação de Curvas

  16. Exercício Veja programas circle.cpp, parabola.cpp, helix.cpp

  17. Curvas de Bézier • É uma técnica de aproximação de curvas. • Uma curva de Bézier pode ser gerada por 3, 4, até n + 1 pontos de controle (ajuste para um polinômio de grau n). • Geralmente utiliza-se quatro pontos de controle (forma cúbica). • A curva passa pelo primeiro e pelo último ponto de controle.

  18. Curvas de Bézier B2 B1 B3 B0 Figura 1

  19. Curvas de Bézier • Onde Bi representa cada um dos n+1 pontos de controle considerados e Jn,i (t) são as funções que combinam a influência de todos os pontos (blending functions). • A curva paramétrica de Bézier é definida como: • Essas funções são descritas pelos polinômios de Bernstein como:

  20. Curvas de Bézier (i = 0, 1, ..., n) são os coeficientes binomiais. • Essas funções Jn,i (t) devem satisfazer as condições: Jn,i (t)  0 para todo i entre 0 e 1, isto é 0 ≤ t ≤ 1 e também: • onde n é o grau dos polinômios e:

  21. Curvas de Bézier • Expressões que definem as curvas de Bézier: • Para três pontos de controle  polinômios com grau 2. P(t) = (1 – t)2 B0 + 2t (1 – t) B1 + t2B2, onde t inicialmente é 0.

  22. Curvas de Bézier • Expressões que definem as curvas de Bézier: • Para quatro pontos de controle  polinômios com grau 3. P(t) = (1 – t)3 B0 + 3t (1 – t)2 B1 + 3t2 (1 – t)B2 + t3B3, onde t inicialmente é 0.

  23. Curvas de Bézier - Algoritmo • Material auxiliar para melhor entendimento de curvas e superfícies de Bézier, veja applets java em http://www.dca.fee.unicamp.br/courses/EA978/1s2003/demos/geometry.html • Exercício: Faça um programa que dado um número n, permita o ingresso interativo (pelo cliques do mouse) de n+1 pontos de controle e construa a curva de Bézier correspondente. Preste atenção que as coordenadas da cena diferem ligeiramente das coordenadas da tela onde os cliques serão feitos.

  24. Curvas de Bézier - Problemas • Falta de controle local : Uma alteração em um ponto no polígono de Bézier acarreta alterações em toda a curva de Bézier. Indesejável quando desejamos fazer ajustes finos. 2. O grau do polinômio cresce com o número de pontos de controle do polígono de controle.

  25. Superfícies Bézier - Generalização da idéia de curva de Bézier. • Sejam Bij, i=0,...,m, j=0,...,n, um conjunto de pontos no R3 de tal forma que sua projeção no plano x0y seja formada pelos vértices de mn retângulos de mesmas dimensões. A superfície de Bézier definida no domínio [0,1]x[0,1] é Onde Jni e Kmj são os polinômios de Bernstein.

  26. Superfícies Bézier

  27. Outras representações de Superfícies

  28. Representação Octree: (estrutura de árvore) Envolve o objeto por um cubo que em seguida é subdividido em 8 cubos menores. Cada um deles pode ser : Cheio, vazio ou cheio-vazio. Os nós cheios ou vazios são terminais, enquanto os cheio-vazios não são.

  29. Representação Octree: Exemplo

  30. Representação Octree: Exemplo

  31. Geometria Sólida Construtiva (CSG) • Consiste em construir um objeto a partir da combinação operatória (união, interseção e diferença) de dois ou mas sólidos.

  32. Geometria Sólida Construtiva (CSG)

  33. Varredura (Sweeping) • Uma superfície é descrita quando uma curva C1 (curva geratriz) é deslocada no espaço, ao longo de uma trajetória dada por uma outra curva C2 (caminho o diretriz). - Varredura translacional (Extrusão ou superfícies geradas por deslocamento)

  34. Varredura (Sweeping) • - Varredura rotacional (ou superfícies de revolução)

  35. Varredura (Sweeping) • - Varredura rotacional (ou superfícies de revolução)

  36. Malha de Polígonos - Coleções de polígonos (ou faces) que, juntos, formam a “pele” ou “casca” do objeto • • Forma rápida e práticapararepresentarobjetos • Estrutura de Dados • . Listacontígua das coordenadas de todososvérticesquecompõemcada face. - Arestasimplícitas - Faces explícitas

  37. Malha de Polígonos

  38. Superfície de Revolução - Tarefa • O programa torus.c (disponível no site da disciplina) desenha a superfície de revolução chamada torus. • O executável swprj.exe permite desenhar uma curva geratriz que dará origem a uma superfície de revolução • O programa superfícies.cpp permite desenhar uma curva de Bézier como curva geratriz e a partir dela obter uma superfície de revolução. (1) Veja que a superfície em superfícies.cpp é representada apenas por cortes horizontais, como você representaria ela por polígonos (quadriláteros ou triângulos)?

  39. Superfície de Revolução - Tarefa (2) Compare o programa torus.cpp da pasta Code com o programa torus.c disponibilizado no site da disciplina. Para consulta de comandos novos use o livro RedBook disponibilizado também no site da disciplina. (3) Desenhar um cilindro como superfície de revolução usando um segmento de reta como curva geratriz.

  40. Curvas e Superfícies Bézier em OpenGL • Leia e entenda os programas bezierCurves.cpp ebezierCurveWithEvalMesh.cpp que desenham curvas de Bézier usando comandos de OpenGL. Explique os comandos que geram as curvas em ambos programas. • Leia e entenda os programas bezierSurface.cpp ebezierCanoe.cpp que desenham superfícies de Bézier usando comandos de OpenGL. Explique os comandos que geram as superfícies em ambos programas.

More Related