CAPITULO 6. Curvas y Superficies. 6.1 Representacion Paramétrica. Representación paramétrica: u=0 (x,y,z) P(u) u=1

Documentos relacionados
VECTORES EN EL PLANO

SISTEMAS DE ECUACIONES LINEALES

Números Reales y Complejos

MATEMÁTICAS Y CULTURA B O L E T Í N No. 262 COORDINACIÓN DE MATEMÁTICAS

FUNDAMENTOS TICOS TEMA 5: CÁLCULO INTEGRAL DE FUNCIONES DE UNA Y DOS VARIABLES

TEMA 11: PROBLEMAS MÉTRICOS

ESPACIO VECTORIAL. 1. VECTORES EN EL ESPACIO Un vector fijo AB es un segmento orientado que va del punto A (origen) al punto B (extremo).

Ejercicios T2- ANÁLISIS DE DATOS UNIDIMENSIONALES

Análisis Poblacional de Mulliken y Löwdin

di Donde: dt u: Tensión que aparece en bornes de la bobina [V] L: Autoinductancia ó inductancia [H] (Henrio)

SOLUCIONARIO. UNIDAD 6: Números complejos. . Puede verse en el dibujo. soluciones. Por tanto, no hay puntos de corte. x y ACTIVIDADES-PÁG.

i = -1 / i = 1 se pueden calcular las raíces de índice par con cantidad subradical negativa, las que no tienen solución en IR. Ejemplos: d) 81 e) 121

La velocidad del viento es un fenómeno aleatorio, su intensidad es muy variable, de modo que es adecuada tratarla en forma estadística.

VECTORES INGENIERO: PERCY ALFREDO AGRAMONTE LIMACHE

FUNDAMENTOS DE INGENIERÍA ELÉCTRICA. José Francisco Gómez González Benjamín González Díaz María de la Peña Fabiani Bendicho Ernesto Pereda de Pablo

Matemáticas II. 2º Bachillerato. Capítulo 4: Geometría en el espacio Vectores LibrosMareaVerde.tk

LONGITUD DE ARCO. Una aproximación es una línea recta desde el punto x=a hasta el punto x=b, como se indica en la figura:

Calcular el equivalente Thevenin y Norton entre los puntos a y b en el circuito de la figura

Teoría y ejercicios de Matemáticas II. Geometría

ALGEBRA VECTORIAL. cúbico Caudal de volumen Metro cúbico por segundo. m 3 /s CAP Magnitudes físicas. Pág. 1

OPENCOURSEWARE REDES DE NEURONAS ARTIFICIALES Inés M. Galván José M. Valls. Preguntas y Ejercicios para Evaluación: Tema 3

55 EJERCICIOS DE VECTORES

INTRODUCCIÓN A LA MODELACIÓN MATEMÁTICA EN INGENIERÍA DE SUELOS: MÉTODO DE LAS DIFERENCIAS FINITAS

TEORÍA DE RENTAS DISCRETAS 1 Rentas Constantes (teoría)

1: El producto escalar de un vector consigo mismo coincide con el cuadrado de su módulo

Te c n o l o g í a d e l o s S e r v i c i o s A u x i l i a r e s - A p u n t e s d e C l a s e - 1

Programación y Métodos Numéricos: Integración Numérica- Fórmulas de de tipo interpolatorio

8. 3 2a = 0 a = 3 / 2 3b 4 = 0 b = 4 / 3. Página a) (2, 4) b) (4, 1) c) ( 3, 4) d) (5, 0)

Examen de Física-1, 1 Ingeniería Química Enero de 2011 Cuestiones (Un punto por cuestión).

el blog de mate de aida: MATE I. Cónicas pág. 1

MALLAS EN CIRCUTOS CC

10 1 deca da 10 2 hecto h 10 3 kilo k 10 6 Mega M 10 9 Giga G Tera T Peta P Exa E Zetta Z Yotta Y

José Francisco Gómez González Benjamín González Díaz María de la Peña Fabiani Bendicho Ernesto Pereda de Pablo

Portal Fuenterrebollo XXXVI OLIMPIADA MATEMÁTICA ESPAÑOLA, PALMA DE MALLORCA (2000)

En este capítulo se describe el problema de máxima cobertura sin capacidad (MCLP) y con

Los vectores y sus operaciones

EJERCICIOS REPASO II

C Capacitores e inductores. Circuitos de Primer Orden

Los vectores y sus operaciones

El Tensor de Deformación

PRODUCTO ESCALAR. r r r

Circuitos Eléctricos.

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL INSTITUTO DE CIENCIAS FÍSICAS I TÉRMINO FÍSICA C Tercera evaluación SOLUCIÓN

Universidad Técnica Federico Santa María

Sistemas de ecuaciones lineales

EJERCICIOS NÚMEROS COMPLEJOS. 3+4i 20º

EXPRESIONES ALGEBRAICAS

Los vectores y sus operaciones

Tema 10: Variables aleatorias

dx x 2 dx 22. x2 +x-2 dx cos 2 x+cosx senx

DERIVADAS. I.E.S. Miguel de Cervantes (Granada) Departamento de Matemáticas - GBG

MODELIZACIÓN SECUENCIACIÓN TAREAS

Universidad Técnica Federico Santa María

(4 3 i)(4 3 i)

1.- El producto escalar de un vector consigo mismo coincide con el cuadrado de su módulo

TEMA 2. Métodos iterativos de resolución de Sistemas de Ecuaciones Lineales

TEMA 8 GEOMETRÍA ANALÍTICA

GUÍA DE MATEMÁTICAS V. Ciclo escolar B determina:

SELECTIVIDAD ANDALUCÍA. a) Esboza las gráficas de f y g sobre los mismos ejes y calcula los puntos de corte entre ambas gráficas.

Fundamentos Físicos de la Ingeniería Tercer Examen Parcial / 5 de junio de Figura 1

INDICE. Operaciones básicas. Matrices. Matriz cuadrada. Traza de una matriz. Suma y resta de matrices. Producto de matrices.

PROBLEMAS RESUELTOS CIRCUITOS DE CORRIENTE CONTINUA CAPITULO 28 FISICA TOMO 2. Tercera y quinta edición. Raymond A. Serway

Tema 0: Introducción al Cálculo Vectorial

Aprendizaje en redes neuronales. Inteligencia Artificial Josué Jesús Pedroza Almaguer Profr. Alfonso Garcés Báez BUAP-FCC, Verano 2003

PRÉSTAMOS HIPOTECARIOS J 12 = 4,5 % (NOMINAL) T.A.E. 4,6386 %

Práctica 2: Codificación Aritmética.

Si el rédito anual de valoración, constante a lo largo de toda la operación, es del 9%, determínese:

e i para construir el modelo econométrico que se escribe a continuación:

Programa de Doctorado en Ingeniería Aeronáutica Capítulo III Tensor deformación. El Tensor de Deformación A A'

a (3, 1, 1), b(1, 7, 2), c (2, 1, 4) = 18,5 u 3

, , ia Prestación real del acreedor Contraprestación real para el acreedor 0, ,6701

MICROTÚBULOS, FUNCIONES CEREBRALES Y LA MECÁNICA CUÁNTICA

Las medias como promedios ponderados

Tema 5. Trigonometría y geometría del plano

La Integral Definida II

MICROSOFT EXCEL EN LA SOLUCIÓN DE PROBLEMAS DE ÁLGEBRA LINEAL

RAÍCES COMPLEJAS DE LAS FUNCIONES CUADRÁTICAS: INTERPRETACIÓN GRÁFICA

2º DE BACHILLERATO MATRICES Y DETERMINANTES Soluciones -1- DETERMINANTES MATRIZ INVERSA. Anulamos. pivotando

Signo 2. Signo 1. 9x 6x 8 = 0, se arregla la ecuación así: 3x 1=±

6 Heteroscedasticidad

MATEMÁTICA 4º. Prof. Sandra Corti

X X 1. MECÁNICA GENERAL 1.4. FUNDAMENTOS DE ANÁLISIS TENSORIAL Introducción

En este tema supondremos al lector familiarizado con las técnicas más elementales de formas bilineales y cuadráticas sobre un espacio vectorial.

EJERCICIOS DE GEOMETRÍA

Grado en Biología Tema 3 Integración. La regla del trapecio.

UNIVERSIDADES PÚBLICAS DE LA COMUNIDAD DE MADRID PRUEBA DE ACCESO A LAS ENSEÑANZAS UNIVERSITARIAS OFICIALES DE GRADO

SOLUCIONES A LOS EJERCICIOS DE LA UNIDAD

I.E.S. PADRE SUÁREZ Álgebra Lineal 1 TEMA I MATRICES. DETERMINANTES.

Geometría convexa y politopos, día 1

FUNCIONES ELEMENTALES

DEFINICIÓN: Un vector es un segmento orientado. Todo vector posee un punto origen y un punto extremo. Si por ejemplo su origen es el punto a

Práctica 12 - Programación en C++ Pág. 1. Practica Nº 12. Prof. Dr. Paul Bustamante. Informática II Fundamentos de Programación - Tecnun

LA RECTA DEL PLANO P O L I T E C N I C O 1 ECUACIÓN VECTORIAL Y ECUACIONES PARAMÉTRICAS

y ) = 0; que resulta ser la

FUNCIONES DE REDES: FUNCION TRANSFERENCIA

2. EL TENSOR DE TENSIONES. Supongamos un cuerpo sometido a fuerzas externas en equilibrio y un punto P en su interior.

Coordinación de Matemática II (MAT022)

ELIPSE. Las componentes principales de la elipse se pueden obtener de la figura anterior, las cuales son: Focos: Vértices: Pág. 1

Transcripción:

CAITULO 6 Crvs y Sperfces 6. Representcon rmétrc Representcón prmétrc: y x,y,z x z

Se: z z z z y y y y x x x x z y x [ ], ˆ ˆ ˆ ˆ,, ˆ ˆ z y x ˆ z z z z y y y y x x x x,, y se llmn coefcentes lgebrcos. [ ] pr se tene,, Resolvendo pr,,, se tene: Reemplzndo en y rreglndo fctores, se tene: Llmemos: F

F F F 4 Lego: F F F F4,,, se llmn coefcente geométrcos. En form Mtrcl Se : [ ][ ] T U A or otro ldo: [ ] [ ] [ F F F F ][ ] T o 4 FB F [ ] F [ ] 4 44444 M F UM UMB pr UA Lego A MB UMB [,]

Ls crvs nterores defnds por los pntos de comenzo y fnles, demás de ss pendentes, se llmn crvs de Hermte. 6. Vectores Tngentes Otr form de escrbr n tngente n crv: t z t x t y Donde tx, ty, tz son los cosenos drectores, tles qe: t t x t y t z Se defne: k lego k * t Así los grdos de lbertd de l crv están ddos por: 6 por los pntos y. 4 por los cosenos drectores de mbs tngentes. por ls mgntdes de los vectores tngentes. En totl grdos de lbertd. [ ] T B

Se pede escrbr como: [ k t k t ] T B Sólo vrndo k 6. Reprmetrzcón Algns veces se reqere cmbr los prámetros de n crv, sn vrr l poscón n l form de ést. Vemos el cso generl: v v T v v [ ] B [ q q q q ] T B Como no debe hber cmbo de poscón, se tene qe cmplr: q q Qé ps con ls pendentes?

L relcón qe exste entre y v, esto es vf, debe ser de tles crcterístcs qe no ltérel form de l crv. Est se cmple s hy n relcón lnel entre ello, entonces podemos sponer qe: Así v b v dv d v b v b v v v d v dv Lego: q v v v q v v v 6.4 Form Trncd v v Usemos ls fórmls nterores

q q q q v v v q v v q v v v v q q 6.5 Form de Ctro ntos 4 4 < < < 4 Spongmos n mtrz k, tl qe: [ ] [ ] 4 T T k q q q q UMB Lego:

T T [ ] [ U U U U ] MB 4 4 De qí [ ] T U U U U [ ] T B M 4 4 De se tene qe: k M B k [ U U U U 4 ] [ ] T 4 T De donde: [ ] k B 4 r, /, /,, se obtene: k / 9 9 / 9 / 9 / k / 7 7 / 7 7 / 7 / 7 4 / 7 / 7 / 7 4 / 7 Se [ ] T 4 UMB B k UMK con Mk N UN

N 9 / 9 / 7 / 45/ 9 7 / 8 9 / 9 / 9 / Expndendo se lleg 4,5 9 5,5,5,5 9,5 8 4,5 4,5 4,5 4 6.6 Crvs de Bezer En generl, n crv de Bezer se pede proxmr clqer número de fentes de control. El número de fentes de control determn el grdo del polnomo. L crv de Bezer es más fáclmente determnd por fncones Blendng. Spongmos qe tenemos n poscones con pntos de control: x, y, z con k vrndo entre y n. k k k k Se pede descrbr n crv qe ps por los pntos y n, y se proxm los pntos ntermedos: n k k BEZ k, n [,] BEZk,n son los polnomos de Bernsten BEZ k, n k nk C n, k Donde: n! C n, k k! n k!

En form scesv se pede defnr: BEZ k, n BEZ k, n BEZ k, n n > k represent n eccón prmétrc como: x y z n k n k n k xk BEZ yk BEZ zk BEZ k, n k, n k, n Como regl, n crv de bezer es n polnomo de grdo no menos qe el número de pntos de control. 4

6.6. ropeddes de crvs de Bezer Un propedd útl es qe l crv sempre ps por el prmer y últmo pnto de control. Condcones de borde: n Ls dervds: ' n n ' n n n n Segnds dervds: [ ] [ ] '' n n '' n n n n n n Otr propedd mportnte de clqer crv de Bezer es qe sempre está std dentro del convex hll. 5 4

6.6. Composcón de Crvs y los tres pntos,,, deben ser colneles pr tener contndd de º dervd. 6.6. Crvs de Bezer cúbcs Son ls más sds y se genern con ctro pntos de control: BEZ BEZ,, BEZ, BEZ, ' k ' ' 6 '' 6 ' En form Mtrcl:

[ ] 4 M BEZ 6 BEZ M 6.7 Sperfces de Bezer Se peden tlzr dos grpos ortogonles de crvs de Bezer pr dseñr n sperfce. L eccón de l sperfce en form prmétrc es: m n k n k m k BEZ v BEZ v,,,, Con,k qe especfc n bccón de m por n pntos de control.

v v L form Mtrcl es:, v donde [ ][ v BEZ T v M M BEZ ] v M BEZ 6

Efecto de levntr n pnto de control Vectores tngentes n vértce, v, v

,, v v, 9 L norml n vértce se clcl por el prodcto crz entre dos tngentes. or eemplo: b N b 6.8 Crvs B-splnes Un crv Splne está formd por crvs polnomles, por rcos o sectores. S S C S or eemplo, l crv C está formd por los rcos S, S y S. A s vez S, S y S podrín ser crvs de Bezer, ls cles están defnds por los polnomos de Bernsten.

6.8. Constrccón de Splnes sndo polnomos como bse. De l sgente crv: gt bt t brrdo o spn ct t ntos knet Soporte t t b t c t t t 4 Un Splne de grdo m tene contndd m- en cd pnto knot. Es decr g t C m. m Consdérese el constrr n crv t bsándose en n sere de fncones gkt polnomles. or eemplo: donde t 4 k k g k t gk t g t k k,,,, 4

Se tene qe t en cd spn está ddo por n sm de polnomos, con n peso k pr cd no de ellos. Eemplo: etc t t g t g t g t t t g t g t t t g t Esto se pede grfcr como: t gt g 4 5 7 6 g g g g 4 / /4 4 4 t 4 5 6

De lo nteror se desprende qe en n stn o brrdo clqer prte de es crv eqvle n sm de polnomos ponderdos por los pntos de control. Se pede pensr entonces qe pede exstr n polnomo generl, el cl srv como bse pr cd cso. 6.8. Crv B-splne L eccón pr n crv B-splne está dd por: n k k B k, d mín d n máx Donde k es n connto de n pntos de control. El rngo del prámetro depende hor de como se elgen los prámetros de l B- spln. Ls fncones Blendng Bk,d son polnomos de grdo d-. Ls fncones Blendg están defnds por l fórml recrsv de Cox-de Boor: B k, s k otro cso k k k d B B, B, k, d k d k d k d k k d k Donde cd fncón Blendng está defnd sobre d ntervlos del rngo totl de. El connto de sbntervlos fnles se llm vector knot. Los vlores pr mín y máx dependen del número de pntos de control, el vlor elegdo pr d y de como se elgen los sbntervlos vector knot.

El vlor / se sme como en cso de ocrrr en l fórml nteror. Ls B-splnes permten qe se cmbe el número de pntos de control sn cmbr el grdo del polnomo. Tmbén se peden ñdr o modfcr los pntos de control pr mnplr ls forms de ls crvs. Cmbo en el pnto de control Ls crvs B-splnes tenen ls sgentes propeddes:. L crv polnoml tene el grdo d y contndd C d sobre el rngo de.. r n pntos de control, l crv se descrbe con n fncones Blendng.. Cd fncón Blendng Bk,d está defnd sobre d sbntervlos del rngo totl de, comenzndo en el vlor not k. 4. El rngo del prámetro está dvddo en nd sbntervlos por los nd vlores especfcdos por el vector knot. 5. Con vlores knot mrcdos como,,... n d l crv B-splne resltnte está defnd en el ntervlo d- hst el vlor knot n. 6. Cd seccón de l crv splne entre dos vlores scesvos de knot está nflencd por d pntos de control. 7. Clqer pnto de control pede fectr l form de lo más d seccones de crvs. En generl hy tres clses de vectores knot: nforme, nforme berto y no-nforme. Ls b-splne se descrben comúnmente de cerdo l tpo de vector knot.

6.8. B-splnes nformes Cndo el espco entre vlores knot es constnte, l crv resltnte se llm B-splne nforme. or eemplo:.5,.,.5,.,.5,.,.5,. A mendo los vlores knot son normlzdos entre y..,.,.4,.6,.8,. B-splnes nformes tenen fncones Blendng nformes. Esto es, pr vlores ddos de n y d, tods ls fncones Blendng tenen l msm form. Eemplo: n d El vector knot debe contener dn7 vlores knot.,,,, 4, 5, 6 y el rngo de es de 6, con nd6 sbntervlos. L crv polnoml es de grdo d-. Con n4 pntos de control, l crv está descrt por n4 fncones Blendng. Cd n de ls ctro fncones Blendng spn d sbntervlos del rngo totl de. Así

, B 4 4 4, B 5 4 5 4 5 4, B 6 5 6 5 4 46 5 4, B

B, B, 4 5 6 4 5 6 B, B, 4 5 6 4 5 6 El prmer pnto de control mltplc l fncón B,. Así, cmbndo l poscón del prmer pnto de control sólo fect l crv hst. Tods ls fncones Blendng están presentes entre d- y n4. Este es el rngo de l crv polnoml. En este rngo, l sm de ls fncones es gl. esto qe el rno de l crv polnoml resltnte s entre y 4, se peden determnr los pntos de comenzo y térmno, evlndo ls fncones blendng en estos pntos. comenzo fnl

Tmbén ls dervds están dds por: ' ' comenzo fnl 6.8.4 B-splnes berts y nformes En este cso de B-splne el vector knot es nforme, excepto en el prncpo y fn de éste. or eemplo.,,,,, pr d y n,,,,,,,, pr d 4 y n 4 r clqer vlor de d y n se pede generr n vector knot como d n d d d n > n r vlores de en el rngo de nd. Con est sgncón los prmeros d knots tenen n vlor y los últmos d knots tenen n vlor n-d. L crv polnoml pr n B-splne bert por el prmer y últmo pnto de control. En esto es smlr l crv de Bezer. Eemplo: d y n 4 cnco pntos de control knot vector,,,, 4, 5, 6, 7, 8,,,,,,, El rngo totl de está dvddo en ses sbntervlos, y cd fncón Blendng está defnd en tres sbntervlos.

, < B Está defnd desde < < 4, B < < <, B < < 5, B, 4 < B,5 B,,6 B,

B, B,,6,6 B 4, 6.9 Sperfces Esto es smlr l cso Bezer. En efecto, l eccón de l sperfce es:, v n k k n k, k Bk, d Bk, d 6.9. Splnes Rconles Un fncón rconl es smplemente l rzón entre dos polnomos. Así, n splne rconl es l rzón de dos fncones splnes.

n k n W k k W k k B B k, d k, d Donde k es el connto de n pntos de control. Los prámetros Wk son fctores de peso pr los pntos de control. Mentrs myor se el vlor de n Wk, más cerc del pnto de control está l crv. Esto es Wk emp l crv hc el pnto de control. Cndo todos los Wk son, entonces tenemos ls B-splnes conocds porqe el denomndor de es l sm de ls fncones Blendng. Ls splnes rconles tenen dos mportntes vents sobre ls no rconles. rmero, ells peden representr exctmente fncones cóncs como círclos y elpses. Fncones no rconles qe son polnomos sólo peden proxmr ests fncones cóncs. L otr vent es qe son nvrntes con respecto n trnsformcón de vst en perspectv. Esto sgnfc qe se pede plcr n trnsformcón los pntos de control y se obtene l correct vst de ell. Constrr n splne rconl se llev cbo de l msm mner qe pr ls no rconles. Ddo el connto de pntos de control, el grdo del polnomo, los fctores de peso y el vector knot, se plcn ls eccones de recrrenc. 6.9. NURBS NURBS es el térmno qe se tlz pr ndcr B-splnes rconles no nformes. r dbr seccones cóncs con NURBS, se s n fncón cdrátc splne d con tres pntos de control. Se pede hcer esto con n splne defnd por el vector knot berto: ls fncones de peso son:,,,,,

W W W r r r < y B, B, r B r r B r,, B, B, Se obtenen vrs cóncs con los vlores sgentes: r >, W > hperbol r, W prábol r, W < elpse r, W segmento recto Hpérbol rábol Segmento Recto Elpse

Se pede tmbén generr n crto de círclo elgendo Wcosφ y elgendo los pntos de control:,,,, φ,, Eemplo Utlzndo OpenGl Crvs OpenGL contene bstntes fncones qe fcltn el dbo de crvs y sperfces de Bezer especfcndo los pntos de control y el rngo de los prámetros y v. Entonces, nvocndo l fncón evldor propd el evldor, se generrán los pntos qe defnen l crv o sperfce. r dbr n crv de bezer se debe proceder de l sgente form Especfcr los pntos de control, por eemplo: GLnt nnmonts 4; GLflot ctrlonts[4][] -4.f,.f,.f, // nto fnl -6.f, 4.f,.f, // nto de control 6.f, -4.f,.f, // nto de control 4.f,.f,.f ; // nto fnl

Defnmos l Crv Bezer glmpfgl_ma_vertex_, // Tpo de dto generdo.f, // Rngo menor de.f, // Rngo speror de, // Dst. entre los pntos nnmonts, //nm. de pntos de control &ctrlonts[][]; // Mtrz de pntos de control glenblegl_ma_vertex_; // Actv el evldor // Us n frn de línes pr "conectr los pntos" glbegngl_line_stri; for ; < ; // Evlú l crv en este pnto glevlcoordfglflot ; glend; El prmer prámetro de glmpf, GL_MA_VERTEX_, ctv el evldor pr generr terns de coordends de vértce x,y,z, en oposcón GL_MA_VERTEX_4 qe generrí ls coordends y n componente lf. Los dos sgentes prámetros especfcn los vlores mínmo y máxmo del vlor prmétrco de est crv. El crto prámetro especfc el número de vlores de com flotnte entre los vértces de l mtrz de pntos de control. El últmo prámetro es n pntero n bffer qe contene los pntos de control empledos en defnr l crv. Aqí psmos n pntero l prmer elemento de l mtrz. Un vez qe se h credo el mpedo de l crv, llmmos l evldor pr hcer so de este mpedo. L fncón glevlcoordf tom n únco rgmento: n vlor prmétrco lo lrgo de l crv. Est fncón evlú entonces l crv en este vlor y llm nternmente glvertex pr dbr ese pnto. Hcendo n bcle en el domno de l crv e nvocndo glevlcoord pr prodcr vértces, podemos dbr l crv con n smple tr de línes. OpenGL pede fcltr ún más ls coss. Defnmos n rell con l fncón glmpgrd, qe le dce OpenGL qe cree n rell de pntos seprdos sobre el domno. Entonces llmmos glevlmesh pr conectr los pntos sndo l prmtv especfcd GL_LINES o GL_OINTS. or eemplo: // Us fncones de más lto nvel pr mper n rell, y evlr todo // Mp de n rell de pntos de glmpgrdd,.,.; // Evl l rell, sndo línes glevlmeshgl_line,,; Reemplz por completo este códgo: // Us n frn de línes pr "conectr los pntos"

glbegngl_line_stri; for ; < ; // Evlú l crv en este pnto glevlcoordfglflot ; glend; El sgente eemplo mestr l crecón de n smple crv de bezer con 5 pntos de control. Defnmos nestros pntos de control GLnt nnmonts 5; GLflot ctrlonts[5][] -4.f,.f,.f, // nto fnl -.f, 4.f,.f, // nto de control.f, -7.f,.f, // nto de control.f, 4.f,.f, // nto de control 4.f,.f,.f ; // nto fnl vod fstcll TFormMn::IdleLoopTObect*, bool& done done flse; RenderGLScene; SwpBffershdc; vod fstcll TFormMn::FormCreteTObect *Sender hdc GetDCHndle; SetxelFormtDescrptor; hrc wglcretecontexthdc; fhrc NULL ShowMessge":-~ hrc NULL"; fwglmkecrrenthdc, hrc flse ShowMessge"Cold not MkeCrrent"; w ClentWdth; h ClentHeght; glenblegl_deth_test; glenblegl_cull_face; glclercolor.f,.f,.f,.f; vod fstcll TFormMn::SetxelFormtDescrptor IXELFORMATDESCRITOR pfd szeofixelformatdescritor,, FD_DRAW_TO_WINDOW FD_SUORT_OENGL FD_DOUBLEBUFFER, FD_TYE_RGBA,

4,,,,,,,,,,,,,,,,, FD_MAIN_LANE,,,, ; xelformt ChoosexelFormthdc, &pfd; SetxelFormthdc, xelformt, &pfd; vod fstcll TFormMn::FormReszeTObect *Sender GLflot rngo; w ClentWdth; h ClentHeght; fh h ; glvewport,, w, h; glmtrxmodegl_rojection; gllodidentty; rngo8; glfrstm-rngo,rngo, -rngo, rngo,,5; glmtrxmodegl_modelview; gllodidentty; gltrnsltef,,-; vod fstcll TFormMn::RenderGLScene glclergl_color_buffer_bit GL_DETH_BUFFER_BIT; DrwObects; glflsh; vod fstcll TFormMn::DrwObects //Defne l Bezer, Sólo necestmos eectr ésto n vez y pede // estr en l fncón de nco glmpfgl_ma_vertex_, // Tpo de dto generdo.f, // Rngo menor de.f, // Rngo speror de, // Dstnc entre los pntos lmcendos nnmonts, // nmero de pntos de control &ctrlonts[][]; // Mtrz de pntos de control // Actv el evldor

glenblegl_ma_vertex_; glcolorf,,; glmpgrdd,.,.; // Evl l rell, sndo línes glevlmeshgl_line,,; glmpgrdd,.,.; // Evl l rell, sndo línes glevlmeshgl_line,,; // Db los pntos d control Drwonts; vod fstcll TFormMn::FormntTObect *Sender glclergl_color_buffer_bit GL_DETH_BUFFER_BIT; glflsh; DrwObects; El resltdo se mestr en l sgente fgr

Eemplo Utlzndo OpenGl Sperfces Crer n sperfce D de Bezer se prece mcho l versón en D. Además de defnr pntos lo lrgo del domno de, tmbén debemos defnrlos lo lrgo del domno de v. El sgente eemplo mestr l mll lámbrc de n sperfce D de Bezer. El prmer cmbo respecto l eemplo nteror es qe hemos defndo tres grpos dconles de pntos de control pr l sperfce lo lrgo del domno de v. r mntener l smplcdd de l sperfce, los pntos de control son gles excepto en el vlor Z. Esto crerá n sperfce nforme, como s sencllmente extrérmos n Bezer D lo lrgo del ee Z. // Número de pntos de control pr est crv GLnt nnmonts ; GLflot ctrlonts[][][] -4.f,.f, 4.f, -.f, 4.f, 4.f, 4.f,.f, 4.f, //V -4.f,.f,.f, //V -.f, 4.f,.f, 4.f,.f,.f, -4.f,.f, -4.f, //V -.f, 4.f, -4.f, 4.f,.f, -4.f ; vod RenderScenevod glclergl_color_buffer_bit; glmtrxmodegl_modelview; glshmtrx; // Rot l mll sobre sí msm pr qe se más fácl de ver glrottef45.f,.f,.f,.f; glrottef6.f,.f,.f,.f; glmpfgl_ma_vertex_,.f,.f,,,.f,.f, 9,, &ctrlonts[][][]; // Actv el evldor

glenblegl_ma_vertex_; // Utlz ls fncones de myor nvel pr mper // en n rell, lego evlú todo // Mpe n rell de pntos de glmpgrdf,.f,.f,,.f,.f; // Evl l rell, sndo línes glevlmeshgl_line,,,,; // Db los pntos de control Drwonts; glopmtrx; glflsh; Ahor, nestro códgo de genercón, demás de rotr l fgr pr consegr n efecto meor, llmmos glmpf en lgr de glmpf. Esto especfc pntos de control lo lrgo de dos domnos y v en vez de sólo no. El resltdo fnl es el mostrdo en l sgente fgr: El lstdo de l fncones prncples de nestro progrm es el sgente: GLnt nnmonts ; GLflot ctrlonts[][][] -4.f,.f, 4.f, -.f, 4.f, 4.f, 4.f,.f, 4.f, //V

-4.f,.f,.f, //V -.f, 4.f,.f, 4.f,.f,.f, -4.f,.f, -4.f, //V -.f, 4.f, -4.f, 4.f,.f, -4.f ; TFormMn *FormMn; fstcll TFormMn::TFormMnTComponent* Owner : TFormOwner Applcton->OnIdle IdleLoop; sze 5.f; vod fstcll TFormMn::IdleLoopTObect*, bool& done done flse; RenderGLScene; SwpBffershdc; vod fstcll TFormMn::FormCreteTObect *Sender hdc GetDCHndle; SetxelFormtDescrptor; hrc wglcretecontexthdc; fhrc NULL ShowMessge":-~ hrc NULL"; fwglmkecrrenthdc, hrc flse ShowMessge"Cold not MkeCrrent"; w ClentWdth; h ClentHeght; glenblegl_deth_test; glenblegl_cull_face; glclercolor.f,.f,.f,.f; vod fstcll TFormMn::SetxelFormtDescrptor IXELFORMATDESCRITOR pfd szeofixelformatdescritor,, FD_DRAW_TO_WINDOW FD_SUORT_OENGL FD_DOUBLEBUFFER, FD_TYE_RGBA, 4,

,,,,,,,,,,,,,,,, FD_MAIN_LANE,,,, ; xelformt ChoosexelFormthdc, &pfd; SetxelFormthdc, xelformt, &pfd; vod fstcll TFormMn::FormReszeTObect *Sender GLflot rngo; w ClentWdth; h ClentHeght; fh h ; glvewport,, w, h; glmtrxmodegl_rojection; gllodidentty; rngo6; glfrstm-rngo,rngo, -rngo, rngo,,5; glmtrxmodegl_modelview; gllodidentty; gltrnsltef,,-5; vod fstcll TFormMn::DrwObects glrottef45.f,.f,.f,.f; glrottef6.f,.f,.f,.f; glmpfgl_ma_vertex_,.f,.f,,,.f,.f, 9,, &ctrlonts[][][]; glenblegl_ma_vertex_; glmpgrdf,.f,.f,,.f,.f; glevlmeshgl_line,,,,; Drwonts;

vod fstcll TFormMn::FormntTObect *Sender glclergl_color_buffer_bit GL_DETH_BUFFER_BIT; glflsh; DrwObects; vod fstcll TFormMn::SlrClckTObect *Sender ext; vod Drwontsvod nt ; glontsze5.f; glbegngl_oints; for ; < nnmonts; glvertexfvctrlonts[][]; glend; Eemplo Utlzndo OpenGl NURBS Tmbén podemos crer n sperfce con crcterístcs de mterles, pr esto procedemos gregndo ls propeddes de mterl e lmncón qe hemos vsto en cpítlos nterores, l sgente fgr mestr n eemplo de ello odemos sr evldores en nestros procesos fndmentles pr evlr sperfces de bezer de clqer grdo, pero con ls crvs más comples será necesro ensmblr sperfces ndependentes. A medd qe ñdmos más pntos de control, es más dfícl crer n crv qe mnteng n

ben contndd. odemos dsponer de n nvel de control myor con ls fncones NURBS de l lbrerí gl. NURBS sgnfc Non-Unform Rtonl B-Splne conctendo-b rconl no nforme. L potenc rel de ls NURBS es exprmr l nflenc de los ctro pntos de control de n segmento clqer de l crv pr prodcr l svdd necesr. Este control se relz trvés de n secenc de vlores denomndos ndos. r cd pnto de control defnmos dos vlores nodles. El rngo de vlores pr ndos se st l domno prmétrco de y v, y no peden ser descendentes. Esto se debe qe los vlores de ndo determnn l nflenc de los pntos de control qe cen dentro de ese rngo en el espco /v. L secenc de ndos defne l ntensdd de l nflenc de cd pnto en el domno. S se repte el vlor de n ndo, los pntos cercnos este vlor prmétrco tene n myor nflenc. L repetcón de los vlores de ndo se denomn mltplcdd nodl. Un myor mltplcdd nodl decrece l crvtr de l crv o sperfce dentro de es regón. Ls fncones NURBS de l lbrerí gl proporconn tlddes de lto nvel pr generr sperfces. No debemos llmr explíctmente los evldores o estblecer los mps y rells. r generr n NURBS, prmero cremos n obeto NURBS l qe nos referremos cd vez qe llmemos ls fncones NURBS relconds pr modfcr l prenc de l crv o sperfce. L fncón glnewnrbsrenderer cre n generdor pr l NURBS, y gldeletenrbsrenderer lo destrye. Los sgentes frgmentos demestrn el so de ests fncones: //ntero n obeto NURBS GLUnrbsOb *pnrbnull; //Defncón del obeto NURBS pnrbglnewnrbsrenderer;... //Efectmos nestrs modfccones NURBS... //Borr el obeto NURBS s se creó f pnrb gldeletenrbsrendererpnrb; Un vez qe hemos credo n generdor NURBS, podemos defnr vrs propeddes NURBS de lto nvel, como est: //Defncón de l tolernc de mestreo glnrbsropertypnrb, GLU_SAMLIG_TOLERANCE, 5.of; //Cremos n sperfce sóld rellenndo // smos GLU_OUTLINE_OLYGON pr crer n mll polgonl glnrbsropertypnrb, GLU_DISLAY_MODE, GLflotGLU_FILL;

Normlmente nvocremos ests fncones en nestr rtn de nco, meor qe hcerlo repetdmente en nestro códgo. En este eemplo, GLU_SAMLING_TOLERANCE defne cómo es de sve l mll qe defne l sperfce, y GLU_FILL le dce OpenGL qe rellene l mll en lgr de generr n fgr lámbrc. L defncón de l sperfce se ps en form de mtrces de pntos de control y secencs de ndos l fncón glnrbssrfce. Como se mestr qí, est fncón tmbén está encerrd entre llmds glbegnsrfce y glendsrfce. // Gener l NURBS // Comenz l defncón NURBS glbegnsrfcepnrb; // Evl l sperfce glnrbssrfcepnrb, // ntero l generdor NURBS 8, Knots, // Núm. de ndos y mtrz de ndos drecc. 8, Knots, // Núm. de ndos y mtrz de ndos drecc. v 4 *, // Dstnc entre pntos de control drecc., // Dstnc entre pntos de control drecc. v &ctrlonts[][][], // ntos de control 4, 4, // Ordenes y v de sperfce GL_MA_VERTEX_; // Tpo de sperfce // sperfce termnd glendsrfcepnrb; odemos hcer más llmds glnrbssrfce pr crer clqer número de sperfces NURBS, pero ls propeddes qe defnmos pr el generdor NURBS segrán tenendo efecto. Usndo los pntos de control y los vlores nodles mostrdos en el sgente segmento de códgo, prodcremos l sperfce NURBS qe hy contncón. // L mll se extende ctro nddes de -6 6 lo lrgo // de los ees x e y, descns en el plno Z v x,y,z GLflot ctrlonts[4][4][] -6.f, -6.f,.f, //, v -6.f, -.f,.f, // v -6.f,.f,.f, // v -6.f, 6.f,.f, / v -.f, -6.f,.f, // v -.f, -.f, 8.f, // v -.f,.f, 8.f, // v -.f, 6.f,.f, // v.f, -6.f,.f, // v.f, -.f, 8.f, // v.f,.f, 8.f, // v.f, 6.f,.f, // v 6.f, -6.f,.f, // v 6.f, -.f,.f, // v

6.f,.f,.f, // v 6.f, 6.f,.f; // v // Secenc de ndos de ls NURBS GLflot Knots[8].f,.f,.f,.f,.f,.f,.f,.f; El sgente eemplo mestr ls fncones prncples de l crecón y vslzcón de n sperfce NURBS GLflot ponts[][][] ntos. GLnt nmonts; GLnt nnmonts ; GLflot ctrlonts[4][4][] -6.f, -6.f,.f, //, v -6.f, -.f,.f, // v -6.f,.f,.f, // v -6.f, 6.f,.f, // v -.f, -6.f,.f, // v -.f, -.f, 8.f, // v -.f,.f, 8.f, // v -.f, 6.f,.f, // v.f, -6.f,.f, // v.f, -.f, 8.f, // v.f,.f, 8.f, // v.f, 6.f,.f, // v 6.f, -6.f,.f, // v 6.f, -.f,.f, // v 6.f,.f,.f, // v 6.f, 6.f,.f; // v // Secenc de ndos de ls NURBS GLflot Knots[8].f,.f,.f,.f,.f,.f,.f,.f; TFormMn *FormMn; fstcll TFormMn::TFormMnTComponent* Owner : TFormOwner Applcton->OnIdle IdleLoop; sze 5.f; vod fstcll TFormMn::FormCreteTObect *Sender

hdc GetDCHndle; SetxelFormtDescrptor; hrc wglcretecontexthdc; fhrc NULL ShowMessge":-~ hrc NULL"; fwglmkecrrenthdc, hrc flse ShowMessge"Cold not MkeCrrent"; w ClentWdth; h ClentHeght; glenblegl_deth_test; glenblegl_cull_face; glclercolor.f,.f,.f,.f; vod fstcll TFormMn::SetxelFormtDescrptor IXELFORMATDESCRITOR pfd szeofixelformatdescritor,, FD_DRAW_TO_WINDOW FD_SUORT_OENGL FD_DOUBLEBUFFER, FD_TYE_RGBA, 4,,,,,,,,,,,,,,,,, FD_MAIN_LANE,,,, ; xelformt ChoosexelFormthdc, &pfd; SetxelFormthdc, xelformt, &pfd; vod fstcll TFormMn::FormReszeTObect *Sender GLflot rngo; w ClentWdth; h ClentHeght; fh h ; glvewport,, w, h; glmtrxmodegl_rojection; gllodidentty; rngo; glfrstm-rngo,rngo, -rngo, rngo,,5; glmtrxmodegl_modelview;

gllodidentty; gltrnsltef5,-5,-5; glrottef,,,; vod fstcll TFormMn::RenderGLScene glclergl_color_buffer_bit GL_DETH_BUFFER_BIT; DrwObects; glflsh; vod fstcll TFormMn::DrwObects GLUnrbsOb *pnrbnull; //Defncón del obeto NURBS pnrbglnewnrbsrenderer; glnrbsropertypnrb, GLU_SAMLING_TOLERANCE, 5.f; glnrbsropertypnrb, GLU_DISLAY_MODE, GLflotGLU_FILL; glbegnsrfcepnrb; glnrbssrfcepnrb, 8, Knots, 8, Knots, 4 *,, &ctrlonts[][][], 4, 4, GL_MA_VERTEX_; //Borr el obeto NURBS s se creó f pnrb gldeletenrbsrendererpnrb; cretesrfce; drwsrfce; vod fstcll TFormMn::FormntTObect *Sender glclergl_color_buffer_bit GL_DETH_BUFFER_BIT; glflsh; DrwObects; od fstcll TFormMn::SlrClckTObect *Sender

ext; vod cretesrfce GLflot mterldffse[].,.,.,. ; GLflot mterlspeclr[].,.,.,. ; GLflot mterlshnness[] 8 ; GLflot speclr[].f,.f,.f,.f; GLflot specref[].f,.f,.f,.f; glmterlfv GL_FRONT, GL_DIFFUSE, mterldffse ; glmterlfv GL_FRONT, GL_SECULAR, mterlspeclr ; glmterlfv GL_FRONT, GL_SHININESS, mterlshnness ; glmterlfvgl_front, GL_SECULAR, specref; glenble GL_LIGHTING ; glenble GL_LIGHT ; gldepthfnc GL_LEQUAL ; glenble GL_DETH_TEST ; glenble GL_AUTO_NORMAL ; glenble GL_NORMALIZE ; nrbsrfce glnewnrbsrenderer; glnrbsroperty nrbsrfce, GLU_SAMLING_TOLERANCE, 5. ; glnrbsroperty nrbsrfce, GLU_DISLAY_MODE, GLU_FILL ; vod drwsrfce GLflot knots[6],,,,,,,,,,,,,,,,,,,,,,,,, ; glcolorf.,.,. ; glbegnsrfce nrbsrfce ; glnrbssrfce nrbsrfce, 6, knots, 6, knots, *,, &ponts[][][],,, GL_MA_VERTEX_ ; glendsrfce nrbsrfce ; El resltdo fnl es el mostrdo en l sgente fgr: