Curvas e Superfícies Paramétricas

Documentos relacionados
Curvas e Superfícies

Curvas e Superfícies. 35M34 Sala 3E1 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

Curvas e Superfícies. Profª Soraia Raupp Musse

Curvas e Superfícies Paramétricas

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Cap. 4- Interpolação Numérica Definições. Censos de BH. Qual o número de habitantes na cidade de Belo Horizonte em 1975?

étodos uméricos INTERPOLAÇÃO, EXTRAPOLAÇÃO, APROXIMAÇÃO E AJUSTE DE FUNÇÕES Prof. Erivelton Geraldo Nepomuceno

Computação Gráfica - 10

MAP Segundo exercício programa Splines cúbicos

Curvas e Superfícies de Bézier

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

CCI-22 FORMALIZAÇÃO CCI-22 MODOS DE SE OBTER P N (X) Prof. Paulo André CCI - 22 MATEMÁTICA COMPUTACIONAL INTERPOLAÇÃO

Objetos Gráficos Espaciais

Aula 3 Volumes Finitos

Construção de objeto e superfícies em OpenGL

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Objetos Gráficos Planares

Vectores e Geometria Analítica

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Exercícios de Matemática Computacional -Cap. 6 Interpolação e aproximação polinomial

x exp( t 2 )dt f(x) =

( 5,2 ). Quantas soluções existem?

Teorema do Limite Central

Módulo 2: Métodos Numéricos. Splines

Spline cúbica. Clarimar J. Coelho. November 8, 2013

3.6 Erro de truncamento da interp. polinomial.

Rever e aprofundar conhecimentos de geometria no Plano e no Espaço. Resolver problemas de Geometria Plana e no Espaço.

Modelação de Formas Geométricas

Computação Gráfica. Representação e Modelagem

E. S. JERÓNIMO EMILIANO DE ANDRADE DE ANGRA DO HEROISMO. Conteúdo Programáticos / Matemática e a Realidade. Curso de Nível III Técnico de Laboratório

Modelos Geométricos Transformações

Comprimento de Arco. 1.Introdução 2.Resolução de Exemplos 3.Função Comprimento de Arco 4.Resolução de Exemplo

Introdução à Computação Gráfica

exercícios de análise numérica II

Modelagem Computacional. Parte 2 2

Interpolação Polinomial. Ana Paula

Cálculo Numérico BCC760 Raízes de equações algébricas e transcendentes

Introdução ao Método dos Elementos Finitos

Introdução ao Processamento e Síntese de imagens Rendering 2016

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

DEPARTAMENTO DE MATEMÁTICA E INFORMÁTICA DISCIPLINA:

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF

Universidade de Coimbra Faculdade de Ciências e Tecnologia 2001/02 Estruturas II (aulas teóricas)

Autores: Interpolação por Spline Cúbica e Método de Integração de Simpson para Cálculo de Campo Magnético PLANO BÁSICO: MÉTODOS NUMÉRICOS

UECEVEST - ESPECÍFICA Professor: Rikardo Rodrigues

ESCOLA SECUNDÁRIA COM 3º CICLO D. DINIS COIMBRA 10º ANO DE ESCOLARIDADE MATEMÁTICA A FICHA DE AVALIAÇÃO Nº 5. Grupo I

Métodos Numéricos - Notas de Aula

Metas/ Objetivos Conceitos/ Conteúdos Aulas Previstas. Lógica e Teoria dos conjuntos: Introdução à lógica bivalente e à Teoria dos conjuntos

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

01. (UFRGS/2003) Se n é um número natural qualquer maior que 1, então n! + n 1 é divisível por. (A) n 1. (B) n. (C) n + 1. (D) n! - 1. (E) n!.

DISTRIBUIÇÃO DOS DOMÍNIOS POR PERÍODO

Interpolação em imagens

Metas/Objetivos/Domínios Conteúdos/Conceitos Número de Aulas

Matemática 2. Teste Final. Atenção: Esta prova deve ser entregue ao fim de 1 Hora. Deve justificar detalhadamente todas as suas respostas.

étodos uméricos ZEROS DE FUNÇÕES DE UMA OU MAIS VARIÁVEIS Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

1. as equações paramétricas da reta que contém o ponto A e é perpendicular ao plano de equação x 2y + 3z = 17;

Equações Diferenciais Noções Básicas

Iluminação e Sombreamento

Modelagem Geométrica: Boundary Representation

Interpolação polinomial: Polinômio de Lagrange

Andréa Maria Pedrosa Valli

ESCOLA SECUNDÁRIA FERREIRA DIAS

LOM Teoria da Elasticidade Aplicada

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

Metas/Objetivos/Domínios Conteúdos/Conceitos Número de Aulas

CANDIDATO: DATA: 20 / 01 / 2010

P L A N I F I C A Ç Ã 0 E n s i n o S e c u n d á r i o

Ezequias Martins França Paulo Giovanni de Souza Carvalho. Resolução dos problemas 2.4 e 2.6 da lista de exercícios

REPRESENTAÇÃO DE ARCOS POR CURVAS DE BEZIER

Objetos Gráficos Planares

Capítulo 5 Derivadas Parciais e Direcionais

Transcrição:

Curvas e Superfícies Paramétricas Prof. João Madeiras Pereira Instituto Superior Técnico

1ª versão: Novembro 2001 2ª versão: Novembro 2002 3ª versão: Outubro 2005 Bibliografia: Computer Graphics: Principles and Practice, Foley, van Dam, Feiner and Hughes; Capítulo 11 3D Computer Graphics, A. Watt, Capítulo 6

1.Introdução Modelação Sólida -> Representação de um objecto através da composição de objectos primitivos através de operações booleanas (CSG); Modelação da Fronteira (B-Rep)-> Representação pela descrição paramétrica da sua superfície;

Modelação da Fronteira Superfícies Paramétricas: fácil de modelar objectos deformáveis; Malha de Facetas: Menos versátil;

Representações Analítica -> Espaço Objecto Paramétrica -> Espaço Paramétrico Espaço Objecto: Coordenadas cartesianas. Espaço Paramétrico: Conjunto dos espaços bidimensionais (x, u) e (y,u) resultantes da decomposição da curva nas suas componentes cartesianas (variáveis dependentes), traduzidas através de um mesmo parâmetro u (variável independente).

Representação Analítica Explícita: x = x; y = f(x); Desvantagens: Representação dependente do sistema de coordenadas adoptado Dificuldade de representação de declives infinitos Tratamento computacional complicado Dificuldade de representar curvas fechadas (pelo menos explicitamente) Informação adicional para definir os limites da curva Implícita: f(x, y) = 0; Mais flexível Função de teste Não determina pontos

Representação Paramétrica

Exemplo Curva polinomial paramétrica:

Vantagens Mais níveis de liberdade para controlo da forma da curva (mais parâmetros a concretizar). Exemplo: no caso anterior, uma curva cúbica tem 12 parâmetros As expressões paramétricas suportam declives infinitos, curvas fechadas ou multi-valor. dy/dx = (dy/du) / (dx/du) dy/dx = infinito => dx/du = 0

Vantagens (cont.) Elementos geométricos definidos parametricamente são inerentemente limitados (0 <= u <= 1). As expressões paramétricas são facilmente traduzidas na forma de vectores e matrizes. Utilização de um só modelo matemático para representar qualquer curva ou superfície.

Exemplos a) Linha Recta (problema dos declives infinitos) x = a + l*u y = b + m*u z = c + n *u Z ANALITICA: The image cannot be displayed. Your computer may not have enough memory to open the image, or z p u=1 Z = f (x,y)???? PARAMETRICA: X x p u=0 y p The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file Y x = x p y = y p z = z p u 0 u 1

Exemplos (cont.) Curva Helicoidal ao longo de zz' (funções multi -valor) x = a*cos (Ku) y = a*sin (Ku) z = b*u

Curva polinomial paramétrica Polinómio de grau k=2: pouca flexibilidade na definição da forma; Polinómio de grau k> 3: demasiado número de coeficientes e formas com oscilações.

Definição de uma curva paramétrica A definição natural de uma curva é feita através da imposição de condições de posição, tangência, curvatura e de um conjunto de pontos denominados pontos de controlo. Interpolação versus aproximação Segmentos de curva e pontos de junção Suavidade (smoothness) derivadas contínuas nos pontos de junção Controlo local alteração de um ponto de controlo deve-se reflectir localmente (porção de curva) e não em toda a curva melhor interactividade na definição da curva

Curva polinomial cúbica paramétrica

Curva polinomial cúbica paramétrica (cont.)

Uma Curva polinomial cúbica paramétrica Caso particular (pouco utilizado): curva interpola 4 pontos de controlo, p 0, p 1, p 2, e p 3. Considere-se o intervalo de u igualmente espaçado: u = 0, 1/3, 2/3, 1

Uma Curva polinomial cúbica paramétrica (cont.)

Funções de Mistura M Matriz base: transforma os constrangimentos geométricos (condições fronteira) nos coeficientes polinomiais e caracteriza a curva. p(u) = u T c = u T M p p(u) = b(u) p com b(u) = u T M b(u) matriz com as funções de mistura polinomiais

No caso em estudo: Funções de Mistura (cont.)

Funções de Mistura (cont.) Problemas: Os zeros das funções de mistura situam-se no intervalo [0, 1] logo pouco suave e propensa a oscilações (mais grave em polinómios de maior grau) Não tem continuidade de derivada nas junções Conclusão: curva pouco utilizada em CG

Superfícies Paramétricas Retalho (patch) é um troço de superfície com u e v definido no domínio (0,1). Manta de retalhos são usadas para modelar as fronteiras de objectos 3D complexos:

Tipos de Curvas Com diferentes Funções de Mistura e diferentes Coeficientes Geométricos constroem-se curvas do tipo: HERMITE: Definidas pela posição e vectores tangentes dos pontos extremos; BEZIER: Definidas pela posição dos pontos extremos e utilizando dois pontos adicionais para definir indirectamente as tangentes à curva nas suas extremidades; B-SPLINE: Constrói uma curva aproximada aos pontos extremos mas sem passar por eles. Este grau de liberdade permite a obtenção de continuidade à primeira e segunda derivadas nos pontos de junção entre segmentos de curva.

Curva Hermite Coeficientes Geométricos: p(0), p(1), pu(0), pu(1): Funções de Mistura: F1(u) = (2u 3-3u 2 + 1) F2(u) = (-2u 3 + 3u 2 ) F3(u) = (u 3-2u 2 + u) F4(u) = (u 3 - u 2 ) p(u) = F1.p(0) + F2.p(1) + F3.p (0) + F4.p (1)

Curva Hermite: definição p(u) = ut c = ut M H p

Funções Mistura Hermite 1 F1 1 F2 0 0,2 1 0 1 F3 F4 0 1 0 1-0,2

Curva Bézier: Critérios As funções devem interpolar a curva nos pontos inicial e final do polígono de controlo (controlo directo dos extremos da curva) Os vectores tangentes nos extremos devem ser dados respectivamente por (p1 p0) e (pn - p(n-1)). (controlo directo dos declives da curva nos pontos extremos). Deve ser possível a generalização da propriedade anterior às derivadas de grau superior. A segunda derivada em po depende de (p0,p1,p2) e assim sucessivamente. (permite o controlo "ilimitado" de continuidade nas junções entre troços de curva). As funções devem ter um comportamento simétrico com respeito a (u) e (1 - u). Esta propriedade faz com que seja possível inverter a ordem dos vértices do polígono de controlo sem que haja alteração da forma da curva aproximada.

Curva Bézier cúbica: definição

Funções de Mistura (Bezier cúbica) Grau da curva depende do número de Pontos de Controlo: (n+1) pontos de controlo -> B i,n (u) = polinómios de grau n Exemplo de curvas de Bézier cúbica (grau n=3) 1 B0,3 B3,3 Funções de Mistura: B1,3 B2,3 0 u 1

Curvas de Bézier de grau n Curvas aproximadas Curva Bezier de grau n p i : Coeficientes geométricos ou pontos de controlo {p0, p1, p2,..., pn} ou polígono característico Funções de Mistura: polinómios de Bernstein

Invariantes a) Para u = 0: B0,n (u) é sempre igual `a unidade. Bi,n (u) é sempre nula quando i <> 0. Confirma-se que o primeiro ponto de controlo determina o primeiro extremo da curva. b) Para u = 1 Bn,n (u) é sempre unitária Bi,n (u) é sempre nula quando i <> n. Confirma-se que o ultimo ponto de controlo determina o segundo extremo da curva. c) Cada ponto pi tem a sua máxima influência para a definição da curva (máximos das funções de mistura) quando: u = i/n

Continuidade C1 e G1 Construção de uma curva mais complicada (vários pts. de controlo) à custa de várias secções Bézier. Seja p n-1 e p n de uma secção e q 0 e q 1 da próxima secção. Para obter G1: Os pts q 0 e q 1 têm de ser colineares com p n-1 e p n (e claro que p n = q 0 ) q 1 = p n + K (p n p n-1 )

Continuidade C1 e G1 (cont.)

Curvas Fechadas 1) Curvas fechadas com continuidade de posição (curvas G0). p0 = pn 2) Com continuidade de posição e declive (curvas C1). ( p 1 - p 0 ) colinear com ( p n - p n-1 )

Propriedades Os extremos coincidem com os vértices extremos do polígono de controlo Os declives nos extremos, são dados directamente pelos lados extremos do polígono de controlo Uma curva Bézier está sempre contida no polígono convexo definido pelos seus pontos de controlo. Se não forem utilizados polinómios de grau muito elevado, a curva segue razoavelmente o andamento do polígono de controlo, sem oscilações indesejadas. A definição da curva é feita por mera enumeração dos pontos de controlo, não exigindo a introdução de declives (interface simples).

Desvantagens O grau do polinómio depende do número de pontos de controlo e para graus muito elevados surgem oscilações. Não é possível o controlo local (a movimentação de um ponto de controlo provoca o recalcular de toda a curva, pois a correspondente função de mistura é não-nula no intervalo ]0, 1[).

B-Splines Curva aproximada Quaisquer número de pts de controlo: (m+1) O grau da curva não é determinado pelos número de pts de controlo mas sim por K (ordem da curva): grau da curva = K 1 (curva cúbica implica K = 4) A curva B-spline é uma série de segmentos de curva Q i (u) (no contexto da curva o parâmetro u é global; no contexto de um segmento u é local) Cada Q i é determinado (ou definido) por K pts de controlo Constrangimento C2 ou G2 nos pts de ligação dos Q i

Segmento de Curva Para uma curva cúbica, um segmento de curva é dado por: i é o número do segmento Representa apenas o segmento Q i u varia no intervalo [0, 1] parâmetro local

Funções de Base num Segmento de Curva (local) No contexto das B-splines, a função de mistura da curva Bézier assume normalmente a designação de função de base

Número de segmentos de curva Considere-se uma curva B-Spline com m+1 pts de controlo e ordem K: o número de segmentos de curva Q i é dado por: Por convenção: Curva cúbica B-Spline: Cada Q i determinado por 4 pts de cntrl propriedade de controlo local: alterar 1 pt de cntrl influencia apenas 4 segmentos de curva m 2 segmentos de curva que convencionalmente se designarão por:

Número de Segmentos de Curva (cont.) Exemplo: curva cúbica com 6 pts de cntrl (m=5 e K=4) Temos 3 Q i e:

Exemplo

Controlo Local Altera-se P 4 : puxa Q 5 e afecta, em menor extensão Q 4. Q 3 não se altera!

Segmentos de Curva e nós de ligação No espaço paramétrico global temos nós ou knots que representam os valores de u onde os segmentos Qi têm os seus extremos. Também são designados por nós de ligação uma vez que são os valores de u onde os seg. de curva se unem Por definição um Qi é definido entre 2 nós consecutivos: Q i define um intervalo paramétrico u i u u i+1 (espaço de u global) B-Spline uniforme: assume-se que esses nós têm valores inteiros e que o espaçamento entre nós é igual a 1 (0, 1, 2,...)

Função de Base da B-Spline Cúbica Cada função de base cobre K intervalos Curva B-Spline ordem 4: cada função de base é, ela própria, uma B-Spline cúbica, constituída por 4 segmentos, e simétrica

Funções de Base de uma B-Spline Cúbica Uniforme Exemplo: curva cúbica com 6 pts de cntrl (m=5 e K=4) Nós uniformemente espaçados (vector de nós uniforme): cada função de base é uma cópia transladada de um nó (funções de base periódicas). Número total de nós: 10 Uma curva B-Spline é calculada por:

Número de Knots Cada função de mistura B i é suportada no intervalo u i - > u i+k Temos m+1 funções de mistura; Logo: m + 1 + k knots (u 0 -> u m+k ) Número de nós: nº de pts de cntrl + ordem da curva

Intervalo do parâmetro u global Mas só interessa para a definição da curva o espaço paramétrico [3, 6]

Intervalo do parâmetro u global O parâmetro u global, no contexto da curva B-Spline Q(u), deve variar entre: Então uma B-Spline é definida por No caso de uma B-Spline cúbica uniforme o valor mínimo de u é sempre 3 (ou u 3 no caso de uma não-uniforme)

Cáculo do Segmento de Curva da B-Spline cúbica Em u K-1 u u m+1, verifica-se que para valores de u que não são nós, estão sempre activas K funções de base e somam a unidade. Nos nós, só existem K-1 funções não-nulas e que somam a unidade. Quando se atinge um nó u i, uma função de base anula-se e nasce outra. Mas Q(u) também pode ser o somatório dos vários Q i Q i define um intervalo paramétrico u i u u i+1 Q i é determinado pelas funções de base B i-3, B i-2, B i-1 e B i

Cáculo do Segmento de Curva da B-Spline cúbica (cont.) Calcula um simples segmento de curva a partir das 4 funções de base no intervalo 0 u 1 (local). O cálculo de Q 3 (3 u 4) implicaria o cálculo das funções acima, substituindo u por (u-3). No exemplo anterior (6 nós, m=5) ter-se-ia: Q(u) = Q 3 + Q 4 + Q 5

Curva B-Spline Numa B-Spline uniforme:

Cálculo da função de base B-Spline cúbica uniforme Esta definição calcula um simples segmento de curva a partir das 4 funções de base no intervalo 0 u 1 (local). Não define a função de base cúbica B 0, a qual consiste de 4 segmentos no intervalo 0 u 4.

Cálculo da função de base B-Spline cúbica uniforme (cont.) Usando as equações do acetato anterior, e transladando cada segmento cúbico de 0, 1, 2 e 3 em u, obtém-se: Se se usar a fórmula recursiva Cox-deBoor para a derivação das funções de mistura, as quais geram curvas B-Splines uniformes ou não-uniformes de grau K, o resultado é exactamente o mesmo.

Fórmula Recursiva Cox-deBoor Método alternativo para o cálculo das funções de mistura de curvas B-Spline, grau K, uniformes ou não-uniformes:

Múltiplos Pontos de Controlo Três P 5 coincidentes: 8 pts de controlo, 6 Q i, 3 u 8 Q 7 (7 u 8) determinado por P 4 P 5 P 5 P 5. Em u=8 interpola P 5

Múltiplos Pontos de Controlo Interiores Perda de continuidade a) ponto duplo -G1 b) Ponto triplo - G0

Múltiplos Pontos de Controlo Interiores (cont.)

B-Splines não-uniformes Vantagens: Se a continuidade é reduzida para C 0, então a curva interpola um pt de controlo, mas sem aquele inconveniente de ter seg. recta em ambos os lados do pt de controlo interpolado Pts extremos interpolados mas sem introduzir segmentos lineares

Vector de Knots Não Uniforme Define-se que os knots dos extremos da curva têm multiplicidade k. Para k=4 (grau 3) temos o vector de knots: T=(0, 0, 0, 0, 1,..., n-1, n, n, n,n) Quando 2 knots são idênticos a curva reduz-se a um ponto.

B-Splines não-uniformes Vector de knots: [0, 0, 0, 0, 1, 2, 3, 3, 3, 3]; 6 pts ctrl; 3 seg. curva 9 segmentos, Q 0 a Q 8. Mas a curva reduz-se a Q 3, Q 4 e Q 5 em que 0 u 3 (u 3 u u 6 ). Nos extremos, todas as funções de base são nulas, excepto B 0 e B 5, ambas unitárias, o que faz com que a curva interpole P 0 e P 5

B-Splines não-uniformes 9 pts de cntl; 13 nós

Efeito da multiplicidade numa função de base B -Spline a) Multiplicidade 1: [0, 1, 2, 3, 4] b) Multiplicidade 2: [0, 1, 1, 2, 3] c) Multiplicidade 3: [0, 1, 1, 1, 2] d) Multiplicidade 4: [0, 1, 1, 1, 1]

Transformar B-Spline em Bézier Curva cúbica com 4 pts de cntrl Interpola os extremos Logo: vector knots = [0, 0, 0,0, 1, 1, 1, 1] Curva com apenas um segmento de curva Q, que interpola os pts de cntrl extremos e cujas funções de base são as funções de mistura da curva cúbica de Bézier

Transformar B-Spline em Bézier

Propriedades Novos knots podem ser inseridos no troço que necessita de refinamento; Aumentar a multiplicidade m de um knot reduz a continuidade da paramétrica k-m-1; Um knot interior de multiplicidade k transforma uma B-spline em duas B-Splines distintas cada um com o seu conjunto de pontos de controlo.

Multiplicidade em pontos interiores (1)

Multiplicidade em pontos interiores (2)

Multiplicidade em pontos interiores (3)

Multiplicidade em pontos interiores (4)

NURBS A curva Rational cúbica é dada pelas seguintes razões: Onde X(u), Y(u), Z(u) e W(u) são curvas cúbicas polinomiais cujos pts. de ctrl são definidos em coordenadas homogéneas. Curva no espaço homogéneo: Q(u) = [X(u) Y(u) Z(u) W(u)] Para passar para o espaço cartesiano divide-se por W(u)

NURBS 2 vantagens: Invariantes após a aplicação de transformações geométricas simples e a transformação perspectiva (as não racionais alteram com a transformação perspectiva). Isto significa que a transformação perspectiva é aplicada apenas aos pts de controlo, os quais podem ser usados para gerar a curva que representa a transf. Perspectiva da curva original. Definir com precisão secções cónicas (polinómios quadráticos)

Superfícies Paramétricas Definir pontos na superfície em termos de dois parâmetros (u, v) Caso mais simples: interpolação bilinear s x(s,1) P 1,1 P 0,1 x(s,t) t P 0,0 s x(s,0) P 1,0

Bezier Patches As with Bezier curves, B in (u) and B jm (v) are the Bernstein polynomials of degree n and m respectively Need 4x4=16 control points, P i,j Most frequently, use n=m=3: cubic Bezier patch

Evaluators em OpenGL void glmap2f(glenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLfloat *points) Target: GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4 ustride: Especifica o número de floats ou de doubles entre o ínicio da posição do ponto de controlo Pij e o ínicio da posição do ponto de controlo P(i+1)j no array de pts introduzidos pelo utilizador. vstride: Especifica o número de floats ou de doubles entre o ínicio da posição do ponto de controlo Pij e o ínicio da posição do ponto de controlo Pi(j+1) no array de pts introduzidos pelo utilizador. i e j representam os índices de u e v dos pts de controlo: indice i corresponde à função Bi(u) e o índice j corresponde à função de base Bj(v).Este esquema de endereçamento permite que seja especificado um array de pts cujo número seja bastante superior ao número de pts de controlo necessários para definir a superfície, ou seja contém potenciais pontos de controlos. Utilizando um ponteiro e os dois strides, o utilizador pode especificar um sub-array rectangular de mxn pts de controlo. A única restrição é que os potenciais pts de controlo estejam em posições adjacentes na memória. EXEMPLO: GLfloat array[100][100][3]; array de potenciais pts de controlo Utilizar para uma superfície cúbica de Bézier um array de pts de controlo a começar pelo pt na posição (20,30) do aray. Se é cúbica, isto significaria que a API utilizaria um array de 4 x 4 pontos. Assim, indicar-se-ia: glmap2f(gl_map2_vertex_3, 0, 1, 100*3, 4, 0, 1, 3, 4, &array[20][30][0])

NURBS em OpenGL Ver exemplo do livro: surface.c Tal como uma Textura uma Nurbs é um objecto que pode ser criado (glunewnurbsrenderer), destruído (gludeletenurbsrenderer) e especificado (glunurbscurve, glunurbssurface). Podem ainda ser criada uma parte de uma paramétrica (glubegintrim, glupwlcurve, glunurbscurve, gluendtrim).

Especificação de Curva Tem que se definir: Nº de knots (= nº de pontos de controlo + ordem da curva) Array de knots (com valores crescentes ou não: curva uniforme ou não-uniforme) Apontador para array de pontos de controlo; Número de floats a percorrer no array de pontos de controlo de modo de modo a aceder ao ponto de controlo seguinte Ordem da curva (= ordem do polinómio + 1); Tipo de avaliação da curva (por exemplo, GL_MAP1_VERTEX_3 or GL_MAP1_COLOR_4).

Parâmetros Pode controlar-se: A tolerância de amostragem, em quadrículas; O modo de desenho (fill, fronteira do retalho, fronteira do polígono); Modo de amostragem (comprimento em quadrículas, distância da superfície ao polígono, comprimento em coordenadas u, v); No 3º modo, de amostragem, tem que se fornecer o passo em u e o passo em v.

GLU_FILL

GLU_OUTLINE_POLYGON