scieee AI-readable full text Open interactive document viewer

GD Geometria per al disseny. Pràctiques

Claverol Aguas, Mercè

Full text

GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 1 PR ` ACTICA : Introducci´o Alguns elements b`asics •Punts, vectors i les seves coordenades. Els punts i els vectors poden introduir-se en la l´ınea d’entrada, o en cadascuna de les vistes. En general, les lletres maj´uscules representen punts i les min´uscules, vectors. Aix´ı per exemple P= (1,2) ´es un punt iv= (3,4) un vector. Si el vector vt´e origen en Ai final en B, tamb´e podem escriure v=B−Aov=V ector(A, B). Es pot obtenir un punt com el traslladat d’un altre, per exemple, P=Point(A, v)o b´e P=A+v. Si tenim una corba, diem-li c, i pintem un punt sobre ella, autom`aticament en l’entrada apareixer`a escrit P=Point(c). Podrem despla¸car el punt sobre la corba, o b´e manualment, o b´e accionant el triangulet encerclat que apareix en la vista algebraica. Una forma alternativa ´es crear un lliscador, diem-li t, i despr´es en l’entrada escriure P=c(t). Els punts introdu¨ıts en la fulla de c`alcul s’anomenaran igual que la cel·la on s´on, si l’etiquetatge autom`atic est`a activat. En R2es pot accedir a les coordenades del punt i del vector amb les funcions x(P), y(P)i o x(v), y(v), respectivament. An`alogament en espais d’altres dimensions. La longitud d’un vector ves pot carcular amb la instrucci´o: Length(v)que equival a fer sqrt(v∗v). Hi ha funcions espec´ıfiques per obtenir a partir d’un vector vel corresponent vector unitari, el perpendicular o el producte vectorial amb un altre vector u:UnitVector(v), PerpendicularVector(v), Cross(u,v). Igual que en altres programes (com R), si a un punt o a un vector li sumem una constant, aquesta se suma a cadascuna de les coordenades. Per exemple, si A= (a, b), A+ 1 = (a+ 1, b + 1). •Propietats dels objectes, etiquetatge. Textos. Quan introdu¨ım un element podem veure i modificar la seva configuraci´o (Settings) tant si cliquem sobre els tres punts de l’entrada en la vista algebraica i triem l’opci´o de les propietats (Settings), com si fem clic dret sobre l’objecte de la vista gr`afica. Podem controlar si volem fer visible o no l’objecte clicant sobre el circle que apareix en la fila on est`a definit, en la vista algebraica. Podem tamb´e controlar-ho fent clic dret sobre l’objecte en la vista gr`afica i marcant o desmarcant aquesta opci´o. De la mateixa manera podem actuar soble la visibilitat de l’etiqueta. Si en les propietats generals tenim marcada l’opci´o d’etiquetatge autom`atic, cada cop que introdu¨ım un element nou l’etiquetar`a. Si no ens interessa, podem eliminar aquesta opci´o. En el desplegable de l’objecte trobem tamb´e altres opcions com la de canviar el nom. L’opci´o d’activar el tra¸c (show trace) permet una visualitzaci´o animada de l’objecte deixant rastre de cadascuna de les posicions per les que passa (per exemple, quan activem un slider i l’objecte que dep`en d’ell t´e activada l’opci´o d’activar el tra¸c, veurem les diferents posicions de l’objecte sense deixar de visualitzar-les a mesura que avan¸ca el lliscador). En la barra d’eines, en el desplegable de la icona del lliscador teniu l’opci´o de Text. Els objectes es poden renombrar o podem voler un text en lloc de l’etiqueta. Un cop creat el text, si cliquem amb el bot´o dret i anem a configuraci´o, podem triar el tipus de lletra (tamb´e lletres gregues), o escriure f´ormules en Latex, o fixar la seva posici´o entre altres propietats. Si per exemple voleu que apareguin les coordenades d’un punt, en les opcions avan¸cades cliqueu la icona , aleshores apareixer`a un text dient “empty box” (o requadre de f´ormula en blanc) i al costat veureu els noms dels objectes que teniu en la vista 2D. Seleccioneu l’etiqueta del vostre punt (en l’exemple que teniu a la figura ´es P). Aix`o far`a que aparegui un requadre en el text amb el nom seleccionat i autom`aticament en el text de la vista 2D apareixeran les coordenades de P. •Matrius Les matrius es representen com a llista de llistes que contenen les files de la matriu. Es poden introduir en la entrada algebraica, en la vista CAS, o introduir-les en el full de c`alcul i crear despr´es la matriu (clicant bot´o dret del ratol´ı l’opci´o de crear matriu). Si volem aplicar la matriu mal punt H, on miHs´on: m={{3,1,0},{0,0,2}{0,0,1}},H={{x},{y},{1}} aleshores farem el producte d’ambdues matrius m*H o b´e ApplyMatrix(m,H).   310 020 001    x y 1   Donada la matriu m, l’element de la fina ii columna jes pot cridar amb la instrucci´o Element(m,i,j). Tamb´e es poden aplicar a maltres instruccions com: Determinant(m), Invert(m), Transpose(m), ApplyMatrix(m, Object), ReducedRowEchelonForm(m). •Llistes. Seq¨u`encies. Les llistes s’introdueixem indicant els elements entre claus. Per exemple, L1={1,2,3,4,5}´es una llista de valors i L2={(1,1),(2,2),(3,3)}´es una llista de punts. Si volem un element i-`esim de la llista L, el podem cridar amb la instrucci´o Element(L,i). La longitud de la llista es pot obtenir amb la instrucci´o Length(L). Tamb´e es poden crear llistes directament des del full de c`alcul. S’introdueixen els elements en les cel·les, es marquen les cel·les i fent clic dret s’escull l’opci´o de crear llista. Si s´on punts i no volem que s’etiquetin amb el nom de la cel·la, recordeu desmarcar l’etiquetatge autom`atic en les propietats generals. Les seq¨u`encies s’introdueixen amb la instrucci´o Sequence(expressi´o,variable,valor inicial, valor final, increment). Per exemple, de la instrucci´o Sequence(xi,i,1,10,2) resulta: x, x3, x5, x7, x9. Per indicar els valors inicial i/o final es poden utilitzar lliscadors. Si no s’indica l’increment, anir`a del valor inicial al final d’un en un. Si hi ha m´es d’una variable, es poden fer seq¨u`encies niuades. •Corbes – Funcions A l’input podem definir funcions i veure autom`aticament la seva representaci´o gr`afica. Per exemple, podem escriure en forma expl´ıcita y=x3, o impl´ıcita y−x3= 0. Li podem donar un nom f(x) = x3o directament escrivim x3i el programa li assignar`a un nom. Si volem restringir la funci´o a un interval, podem fer-ho amb la instrucci´o Function o amb un condicional: Function(exp(x),0,1) o equivalentment If(0 ≤x≤1,exp(x)). Per`o tamb´e es pot fer servir la instrucci´o Curve(x, exp(x), x, 0,1). Es poden utilitzar funcions per descriure les components de corbes parametritzades. En aquest cas, possiblement ens interessar`a ocultar-les. – Corbes en forma impl´ıcita S´on expressions de la forma F(x, y)=0. Per exemple, la recta x−y= 0, o la circumfer`encia x2+y2= 4 ( les c`oniques tamb´e es poden crear amb la icona espec´ıfica de la barra d’eines 2D). Tamb´e es poden definir amb la instrucci´o ImplicitCurve(x2+y2−4). – Corbes param`etriques, Es poden introduir amb la instrucci´o Curve(f(t), g(t), t, t1, t2), on figs´on funcions del par`ametre tque t´e per valor inicial t1i final t2. Per exemple, Curve(cos(t),sin(t), t, 0,2pi)descriu una circumfer`encia. Observeu que una corba en forma expl´ıcita y=f(x), x1≤x≤x2sempre es pot expressar en forma param`etrica aix´ı: Curve(x, f(x), x, x1, x2). Tamb´e es poden escriure parametritzacions en forma vectorial. Per exemple, havent definit els punts AiB, podem escriure una parametritzaci´o en forma vectorial del segment AB, recorregut de A cap a B, fent: Curve(A+t(B−A), t, 0,1). Recordeu que quan teniu una expressi´o algebraica, en les propietats, en la pestanya Algebra, podreu seleccionar la forma en qu`e voleu expressar l’input: forma extesa, redu¨ıda o param`etrica. •Superf´ıcies. – Superf´ıcies en forma impl´ıcita S´on expressions de la forma F(x, y, z)=0. En la versi´o actual de GeoGebra no admet qualsevol pot`encia de les variables. Alguns exemples amb polinomis de graus m´es petits o igual a 2, s´on el pla x+y+z= 1, o l’esfera x2+y2+z2= 4 (les cu`adriques tamb´e es poden crear amb la icona espec´ıfica de la barra d’eines 3D). En les propietats, en la pestanya Algebra, podreu seleccionar la forma en qu`e voleu expressar l’input: forma extesa o redu¨ıda. – Superf´ıcies param`etriques Es poden introduir amb la instrucci´o Surface(f1(u, v), f2(u, v), f3(u, v), u, u1, u2, v, v1, v2), on fis´on funcions dels par`ametres uivque prenen valors en els intervals [u1, u2] i ]v1, v2], respectivament. Observeu que una corba en forma expl´ıcita z=f(x, y), x1≤x≤x2, y1≤y≤y2sempre es pot expressar en forma param`etrica aix´ı: Surface(x, y, f(x, y), x, x1, x2, y, y1, y2). Exercici 1 (Segments) 1. Introdu¨ıu a la l´ınia d’entrada A,Bic. Quin tipus de corba ´es? A= (1,1) B=A+ 3 c=Curve((1 −t)A+tB, t, 0,1) 2. Comproveu que Curve(A+t V ector(A, B), t, 0,1) dona la mateixa corba c. 3. Creeu un lliscador (clicant la icona corresponent i despr´es la vista gr`afica 2D), de nom t, valor m´ınim 0, m`axim 1, i increment 0.1. Despr´es, en la l´ınea d’entrada, definiu P=c(t). Observeu que P´es un punt de la corba c, que anir`a variant segons el valor del lliscador, que hem anomenat com el par`ametre de la corba t. 4. Poseu un text en la posici´o de Pque indiqui les seves coordenades i tamb´e el valor del lliscador. Exercici 2 (Punts m´es vectors. Treballar en la vista CAS) Introdu¨ıu A:= (5,5) i C:= (1,1), que seran els dos v`ertexs no consecutius d’un rombe (paral·lelogram amb tots els costats d’igual longitud). Sabent que el costat AD ´es paral·lel a la recta (x, y) = (5,−1) + t(1,−2) i el tercer v`ertex ´es B= (−3,9), trobeu la coordenada del v`ertex que falta. Feu que al costat del nom dels punts apareguin les seves coordenades. Exercici 3 (Matrius) Introdu¨ıu el punt P= (a, b, c) i el vector v= (v1, v2, v3) (autom`aticament es crearan els lliscadors per cadascuna de les coordenades). Definiu les matrius descrites a continuaci´o i feu el producte. Definiu el punt P′com les tres primeres files de la matriu resultant d’aquest producte: M=     100x(v) 010y(v) 001z(v) 0 0 0 1         cos(π/4) 0 sin(π/4) 0 0 1 0 0 −sin(π/4) 0 cos(π/4) 0 0 0 0 1         100−x(v) 010−y(v) 001−z(v) 0 0 0 1         x(P) y(P) z(P) 1     = Experimenteu amb els lliscadors per observar la relaci´o entre PiP′. Exercici 4 (Llistes) Donat un conjunt de punts, volem obtenir la llista de les seves abscisses i tamb´e de les ordenades. 1. En la vista gr`afica dibuixeu 5 punts. Siguin per exemple, A, B, C, D iE. 2. Volem introduir-los en el full de c`alcul (Spreadsheet). Perqu`e al fer-ho no torni a etiquetar els punts, aneu a les propietats generals i desmarqueu l’opci´o d’etiquetar autom`aticament, marcant l’opci´o de no etiquetar els objectes nous. Introdu¨ıu els punts en la primera columna del full de c`alcul, posant el nom en cada cel·la (Aintro, Bintro,...). Reserveu la cel·la A1 per donar-li un nom a la columna, per exemple, Punts. 3. A la segona columna obtindreu les primeres coordenades de cada punt. En B1 anomeneu la columna (Abscisses). En B2 escriureu x(A2) i feu intro. Marqueu aquesta cel·la, copieu (crtl C) i des de l’extrem inferior dret arrossegueu fins a B6. 4. Obteniu de manera an`aloga les segones coordenades de cada punt en la tercera columna. 5. Marqueu cada columna i amb clic dret creeu una llista per a les abscisses i una altra per a les ordenades. Exercici 5 (Seq¨u`encies) 1. En la vista gr`afica dibuixeu un pol´ıgon regular amb la icona corresponent en la barra d’eines. 2. En la l´ınea d’entrada definiu una llista amb les etiquetes dels v`ertexs del pol´ıgon que heu creat. 3. Feu un segment que uneixi dos element de la llista utilitzant les instruccions Curve per al segment i Element per indicar els elements de la llista escollits. 4. Amb seq¨u`encies anidades, feu que tots els v`ertexs del pol´ıgon estiguin units entre s´ı mitjan¸cant segments. Exercici 6 (Eines Vista 3D) En aquest exercici veurem entre altres coses que el cub ´es una superf´ıcie desenvolupable fent servir les icones de la barra d’eines 3D. 1. En la vista gr`afica 3D, activa la icona de dibuixar punts. Nom´es podreu dibuixar el punt sobre algun objecte, en aquest cas sobre el pla z= 0. Amb les fletxes que us apareixen podreu moure’l pel pla o fora d’ell. Coloqueu el punt lleugerament per sobre del pla. 2. Amb la icona corresponent, feu un pla paral·lel al pla z= 0 passant pel punt que heu creat. 3. Dibuixeu un altre punt sobre el nou pla i amb la icona dels poliedres, creeu un cub que passi per aquests dos punts. 4. En el desplegable dels poliedres (sota la icona del cub) trobareu l’opci´o de desenvolupament (net), apliqueu-la al cub. Autom`aticament es crear`a uns slider en la vista algebraica. Podeu rec´orrer els seus valors accionant el triangulet encerclat del final de la l´ınea algebraica. 5. Amb centre al punt mig de dos v`ertexs no adjacents del cub, dibuixeu una esfera de radi 2. GD Geometria per al disseny Pr`actiques 2021-23 Q2 EEBE-UPC Merc`e Claverol 2 PR ` ACTICA: Coordenades Baric`entriques Convexitat, envolupant convexa. Coordenades baric`entriques. Combinacions baric`entriques o afins. Un sistema de coordenades ve donat per un punt de l’espai geom`etric que estem considerant (l’origen de coordenades) i un conjunt de vectors independents d’aquest espai. Aleshores qualsevol punt de l’espai Pes pot expressar de manera ´unica com l’origen m´es una combinaci´o dels vectors del sistema de coordenades. Equivalentment, si expressem els vectors del sistema de refer`encia com a resta de punts, qualsevol punt Pd’un espai de dimensi´o ns’expressa de manera ´unica com a combinaci´o lineal de n+ 1 punts on els coeficients sumen 1. Per exemple, siguin A, B iC3 punts no alineats del pla. Sigui Al’origen de coordenades i  AB,  AC els dos vectors del sistema de coordenades. Podem expressar qualsevol punt Pdel pla com: P=A+a AB +b AC , aleshores: P=(a, b)s´on coordenades afins de Pen la refer`encia {A; AB,  AC}, i P=(1−(a+b), a, b)les baric`entriques de Pen {A;B, C}. Observem gr`aficament la interpretaci´o de les coordenades. Sigui Xpunt projecci´o de Psobre  AB en la direcci´o de  AC. Sigui Ypunt projecci´o de Psobre  AC en la direcci´o de  AB. Aleshores, les coordenades afins de Pen la refer`encia {A; AB,  AC}, s´on: a=| AX| | AB|b=| AY | | AC| per`o amb signe positiu o negatiu, depenent de si la parella de vectors que defineixen la coordenada tenen el mateix o diferent sentit, respectivament. Combinacions baric`entriques o afins Encara que no formin refer`encia, podem realitzar combinacions baric`entriques o afins de diversos punts {P1,· · · , Pn}i escriure un punt Pcom P= n X i=1 λiPi on λis´on els coeficients de la combinaci´o que hauran de sumar 1, n X i=1 λi= 1 Es pot pensat com que el punt P´es el baricentre dels punts P1,· · · , Pnamb els pesos λ1,· · · , λn. Per exemple, donats tres punts A, B iCen R3, no colineals, la combinaci´o af´ı αA +βB +γC, on α, β, γ ∈R, α +β+γ= 1 representa el pla que passa pels tres punts i els coeficients (α, β, γ) s´on les coordenades baric`entriques dels punts del pla. Les aplicacions afins frespecten les combinacions baric`entriques, f( n X i=1 λiPi) = n X i=1 λif(Pi) M´es endavant veurem que aquest fet ´es clau en les parametritzacions de les corbes de B´ezier at`es que aquestes corbes s´on combinacions afins dels seus punts de control! Ra´o simple La ra´o simple de tres punts alineats descriu la proporci´o en qu`e un dels punts divideix al segment definit pels altres dos. Si el punt P=A+t AB, ´es a dir, Pt´e coordenades baric`entriques (1 −t, t) en la refer`encia {A;B}, aleshores la ra´o simple r(A, P, B) es pot definir com : r(A, P, B) = t 1−t Observa que: P=A+t AB =A+t( AP + PB) =⇒ AP =t( AP + PB) =⇒ AP(1 −t) = t PB =⇒ AP =t 1−t PB Per`o tamb´e trobem altres maneres de definir la ra´o simple com ara la que ens d´ona GeoGebra si P=A+t AB: AffineRatio = (punt origen,punt final,punt alineat) = AffineRatio(A, B, P) = t Observa que: P=A+t AB =⇒ AP =t AB Cal saber quina definici´o estem utilitzant (si estem descrivint la proporci´o entre  AP i PB, o entre  AP i AB), per`o les propietats que se’n deriven d’ambdues definicions s´on les mateixes. La import`acia de la ra´o simple rau en qu`e ´es invariant per les aplicacions afins. De fet, les aplicacions afins es caracteritzen per ser les ´uniques que conserven la ra´o simple de tres punts alineats. Q¨uestions: 1. Considereu la refer`encia can`onica de R,{A; AB}, on A= 0 i B= 1. (a) Comproveu que P= (1 −t)A+tB =⇒ AP =t AB. (b) Esbrineu en quina part de la recta que passa per AiB, les dues coordenades de P= (1 −t, t) estan entre 0 i 1. (c) Per quin valor de tel punt descrit ´es A? I B? (d) Quins s´on els punts de la recta per als quals t > 1 (i, per tant, 1 −t < 0). An`alogament quins s´on els punts per a t < 0 (i, per tant, 1 −t > 1). (e) Considereu coordenades baric`entriques en la refer`encia {A;B}. Marca en la recta per AiBels punts amb les coordenades baric`entriques seg¨uents: P= (1/2,1/2), Q= (−1,2) i R= (2,−1). 2. Considereu la refer`encia can`onica de R2,{A; AB,  AC}, on A= (0,0), B= (1,0), i C= (0,1). En aquesta refer`encia, considereu el punt P= (p1, p2) i el vector v= (v1, v2). (a) Quines s´on les coordenades baric`entriques del punt Pen la refer`encia {A;B, C}? (b) Quines s´on les coordenades baric`entriques del vector ven la refer`encia {A;B, C}? (Indicaci´o: utilitzeu que v=v1 AB +v2 AC i expresseu els vectors com a resta de punts.) (c) En quina regi´o del pla estar`a Psi les seves coordenades baric`entriques s´on positives? (d) Dibuixeu l’envolupant convexa del conjunt {A, B, C}, ´es a dir, el convex m´es petit que cont´e als tres punts. ´ Es la regi´o de l’apartat anterior? 3. Considereu la refer`encia can`onica de R3,{A; AB,  AC,  AD}, on A= (0,0,0), B= (1,0,0), C= (0,1,0) i D= (0,0,1). En aquesta refer`encia, considereu el punt P= (p1, p2, p3) i el vector v= (v1, v2, v3). (a) Quines s´on les coordenades baric`entriques del punt Pen la refer`encia {A;B, C, D}? (b) Quines s´on les coordenades baric`entriques del vector ven la refer`encia {A;B, C, D}? (c) En quina regi´o del pla estar`a Psi les seves coordenades baric`entriques s´on positives? (d) Dibuixeu l’envolupant convexa del conjunt {A, B, C, D}, ´es a dir, el convex m´es petit que cont´e als tres punts. ´ Es la regi´o de l’apartat anterior? Exercici 1 El farem utilitzant l’opci´o de c`alcul simb`olic, CAS, que trobareu en view al men´u de la barra superior de Geogebra. Dibuixem 3 punts no alineats, A, B iC, i un quart punt P. Fixades les coordenades de Pen la refer`encia can`onica, com trobar les coordenades en la refer`encia {A;B, C}? Resoldrem el sistema donat per:  AP =a AB +b AC, on les inc`ognites s´on aib: A CAS: Definim els vectors: AB :=Vector(A, B), AC := Vector(A, C) i AP := Vector(A, P). Definim la matriu del sistema i el resolem: M:= {{x(AB), x(AC), x(AP)},{y(AB), y(AC), y(AP)} E:=ReducedRowEchelonForm(M) PafinsABC:=(Element(E,1,3), Element(E,2,3)) PbarABC:=(1 - (Element(E,1,3) + Element(E,2,3)), Element(E,1,3), Element(E,2,3)) Exercici 4 (Rotacions amb Rotate) 1. En la vista gr`afica, dibuixeu un punt, diem-li A. 2. Creeu un lliscador de nom r, amb valors positius. Definiu un punt Ba dist`ancia rde A. Indicaci´o: podeu per exemple definir Bsumant al punt A, un vector de longitud r. 3. Definiu un lliscador de nom namb valor m´ınim 2 i m`axim 7, que definir`a el nombre de v`ertexs d’un pol´ıgon regular. Utilitzant les instruccions Sequence i Rotate, heu d’obtenir aquests v`ertexs aplicant-li al punt Brotacions de centre A. Indicaci´o: l’angle πes pot introduir escrivint: pi. Exercici 5 (Translaci´o Rotaci´o i Escalatge amb matrius) Al triangle de v`ertexs A= (3,2), B= (3,3) i C= (5,2) mitjan¸cant la composici´o d’afinitats volem aconseguir que la hipotenusa sigui un segment vertical. Volem tamb´e triplicar la mida del triangle rotat deixant fix el punt A′= (−4,2). ´ Es a dir, volem transformar el triangle de la dreta de la figura en el de l’esquerra, de manera que Avagi a parar a A′. 1. Descriviu amb quins moviments podeu transformar A, B, C en A′, B′, C′. 2. Feu la composici´o dels moviments expressant-los matricialment. Indicacions: •At`es que coneixeu A′, la posici´o final de A, utilitzeu el v`ertex Aper traslladar-lo a l’origen. •Un cop tingueu les matrius ampliades de les afinitats podreu aplicar-les a les coordenades homog`enies dels punts fent el producte en l’ordre convenient. Per`o no cal fer-ho punt a punt. Podeu definir una matriu que tingui per columnes les coordenades homog`enies de tots els punts (v`ertexs del triangle inicial) i aplicar-li a aquesta matriu les matrius ampliades de les afinitats. Obtindreu alhora les coordenades homog`enies dels punts soluci´o (v`ertexs del triangle final). GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 3.2 PR ` ACTICA : Afinitats Afinitats en R3. Translaci´o. Rotaci´o. Escalatge A l’espai geom`etric de dimensi´o 3, 3D, els punts tindran tres coordenades (en les homog`enies, afegirem un 1 com a quarta coordenada) i les matrius ampliades seran matrius 4 ×4. Les translacions i els escalatges es defineixen de manera an`aloga al cas 2D. Les rotacions dependran d’un angle i d’un eix de rotaci´o. En la vista 3D de Geogebra hi ha una icona que us facilitar`a l’aplicaci´o d’aquestes afinitats. 1. Translaci´o Tv:Transformaci´o geom`etrica que aplicada al punt P= (x, y, z) el despla¸ca seguint una traject`oria recta indicada per un vector v = (v1, v2, v3)fins a P′= (x′, y′, z′). x′=x+v1 y′=y+v2 z′=z+v3⇐⇒   x′ y′ z′  =  x y z  +  v1 v2 v3   Amb matrius ampliades: x′=x+v1 y′=y+v2 z′=y+v3 1=1 ⇐⇒     x′ y′ z′ 1    =     100v1 010v2 001v3 0 0 0 1         x y z 1     2. Rotaci´o Gθ r:Transformaci´o geom`etrica que aplicada al punt P= (x, y, z) el despla¸ca seguint una traject`oria circular d’angle θ, en el pla perpendicular a una recta r,eix de rotaci´o, fins a un punt P′= (x′, y′, z′). L’angle ´es positiu si gira en sentit antihorari (amb la regla de la ma dreta). •Si l’eix r´es un dels eixos coordenats. –Gir d’angle θal voltant de l’eix x: x′=x y′=ycos θ−zsin θ z′=ysin θ+zcos θ b Gθ OX =     1 0 0 0 0 cos θ−sin θ0 0 sin θcos θ0 0 0 0 1     A A0 x y z θ –Gir d’angle θal voltant de l’eix y: x′=xcos θ+zsin θ y′=y z′=−xsin θ+zcos θ b Gθ OY =     cos θ0 sin θ0 0 1 0 0 −sin θ0 cos θ0 0 0 0 1     A A q z x y –Gir d’angle θal voltant de l’eix z: x′=xcos θ−ysin θ y′=xsin θ+ycos θ z′=z b Gθ OZ =     cos θ−sin θ0 0 sin θcos θ0 0 0 0 1 0 0 0 0 1     A A q z xy Observeu que si fem una rotaci´o en un pla coordenat, la transformaci´o coincideix amb la descrita en 2D prenent com a centre de rotaci´o el punt d’intersecci´o de l’eix de rotaci´o amb el pla. Per exemple, si rotem en el pla xy (z= 0), l’eix de rotaci´o r´es paral·lel a l’eix zi el centre de gir ´es el punt r∩{z= 0}. •Si l’eix rno ´es un dels eixos coordenats, seguir els passos seg¨uents: (1) Aplicar una translaci´o de manera que l’eix de rotaci´o passi per l’origen de coordenades: Tv (2) Aconseguir que l’eix de rotaci´o rcoincideixi amb algun dels eixos de coordenades, per a la qual cosa poden fer falta dues rotacions: –Primera rotaci´o d’angle αper portar ra un pla coordenat, per exemple, escollim el pla yz. Rodem al voltant de l’eix yfins que restigui al pla yz:Gα OY –Segona rotaci´o d’angle βper fer coincidir ramb un eix coordenat, per exemple, rodant al voltant de l’eix xfins que restigui sobre l’eix z:Gβ OX (3) Aplicar a l’objecte la rotaci´o d’angle θal voltant de la nova posici´o de r(eix de rotaci´o), per exemple, al voltant de l’eix z:Gθ OZ (4) Desfer, en ordre invers, les rotacions d’angles αiβdel pas 2 i la translaci´o inicial: T−v◦G−α OY ◦G−β OX Resumint (1)-(4): T−v◦G−α OY ◦G−β OX ◦Gθ OZ ◦Gβ OX ◦Gα OY ◦Tv, matrius ampliades: b T−vb G−α OY b G−β OX b Gθ OZ b Gβ OX b Gα OY b Tv 3. Escalatge Eλ1λ2λ3 P:Transformaci´o geom`etrica respecte d’un centre o punt fix P0= (x0, y0, z0)i amb factors d’escala λ1,λ2iλ3, que aplicada sobre un punt P= (x, y, z) el mou a un nou punt P′= (x′, y′, z′) obtingut multiplicant la dist`ancia respecte de cadascun dels eixos coordenats entre P0iPper λ1,λ2iλ3, respectivament. Si l’escalatge ´es uniforme, λ1=λ2=λ3, aleshores ´es una homot`ecia. Exemple. P0= (1,3,2), P= (−1,4,4). Si apliquem a Puna homot`ecia de centre P0i par`ametres λ1=λ2=λ3= 2, aleshores: P′=P0+ (λ1dx, λ2dy, λ1dz) = (1,3,2) + (2 ·(−1−1),2·(4 −3),2·(4 −2)) = (−3,5,6) •Si P= (0,0,0), Amb matrius ampliades: x′=λ1x y′=λ2y z′=λ3z 1 = 1 ⇐⇒     x′ y′ z′ 1    =     λ10 0 0 0λ20 0 0 0 λ30 0 0 0 1         x y z 1     •Si P= (x0, y0, z0)= (0,0,0), seguirem els passos seg¨uents: (1) Aplicar una translaci´o que porti el punt fix Pa l’origen (0,0,0): Tv (2) Escalar amb P= (0,0,0) i factors λ1,λ2iλ3:Eλ1λ2λ3 P (3) Desfer la translaci´o inicial: T−v Resumint (1)-(3): T−v◦Eλ1λ2λ3 P◦Tvmatrius ampliades: b T−vb Eλ1λ2λ3 Pb Tv Exercici 1 (Escalatge) Definiu un punt arbitrari P= (a, b, c). Autom`aticament es crearan els lliscadors a, b icamb els qu`e podreu anar canviant les coordenades del punt. Despr´es, quan les necessiteu, les indicareu amb x(P), y(P) i z(P) perqu`e al canviar els valors dels lliscadors canvi¨ın autom`aticament les coordenades de Pen tot l’exercici. Apliqueu-li a Puna homot`ecia de centre C= (c1, c2, c3) (novament controlareu aquestes coordenades amb lliscadors i cridareu les coordenades amb x(C), y(C) i z(C)) i ra´o r(un nou lliscador per poder canviar aquest valor). Apliqueu l’homot`ecia a Pde les dues maneres: matricialment i amb la definici´o. Comproveu que la imatge de P= (−1,4,4) per l’homot`ecia amb centre C= (1,3,2) i ra´o r= 2 ´es (−3,5,6). Exercici 2 (Propietats b`asiques) Per a cadascuna de les afinitats de translaci´o, rotaci´o i escalatge, trobeu les matrius inverses i expliqueu qu`e fan. Exercici 3 (Rotacions) Si al punt P= (1,1,0) li apliquem una rotaci´o d’angle πi eix de rotaci´o l’eix y, seguida d’una altra d’angle πi d’eix l’eix zi d’una d’angle πi d’eix l’eix x, el punt Ptorna a la posici´o inicial. P= (1,1,0) Rπ y −→ P′Rπ z −→ P′′ Rπ x −→ P′′′ =P Quines s´on les coordenades de P′iP′′ ? Les trajectories que segueix el punt Ps´on trossos de circumfer`encies al voltant de cadascun dels eixos. Completa la descripci´o d’aquestes corbes i escull quina de les dues imatges de la figura ´es la correcta. Curve(cos(t),...,sin(t), t, 0, π)comen¸ca en Pi acaba en P′, en un pla paral·lel al xz. Curve(√2 cos(t),√2 sin(t), . . . , t, 3π 4, . . .)comen¸ca en P′i acaba en P′′, en el pla xy. Curve(. . . , cos(t),sin(t), t, π, 2π)comen¸ca en P′′ i acaba en P, en un pla paral·lel al yz. (a) (b) Exercici 4 (Translacions, rotacions i escalatge) Considereu la pir`amide de v`ertexs: A= (0,0,0), B = (0,−3,0), C = (3,−3,0), D = (3,0,0) i E= (0,0,4). Apliqueuli una homot`ecia de centre P= (3/2,−3/2,1) i escala 1/3. A la nova pir`amide, apliqueu-li una rotaci´o d’angle π/4 i eix la recta per A′B′. GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 4 PR ` ACTICA : Sistemes de coordenades Canvis de sistemes de coordenades Vegem com podem aplicar l’`algebra lineal per a obtenir parametritzacions de corbes a R3que no estan en posici´o est`andard. Per trobar la parametritzaci´o d’una corba en el sistema can`onic el que farem ser`a buscar nous sistemes de coordenades on sigui f`acil identificar la parametritzaci´o. El nou sistema el farem construint bases ortonormals amb un punt origen. Despr´es veurem com trobar l’expressi´o de les corbes en el sistema de coordenades inicial, ´es a dir, el can`onic. 1. Construcci´o de la base ortonormal. En R3:{u1, u2, u3} Sense canviar la posici´o de la corba, busquem on col·locar els eixos del nou sistemea de refer`encia perqu`e la expressi´o de la corba sigui coneguda en aquest nou sistema. Aqu´ı constru¨ım la nova base ortonormal. 2. Nou sistema de coordenades S′={K;u1, u2, u3} El nou sistema de coordenades est`a format per la nova base i un punt origen, diem-li K. 3. Expressi´o de les corbes en S′ En S′la corba t´e una expressi´o param`etrica coneguda, st`andard. 4. Expressi´o de les corbes en el sistema can`onic S={O;e1, e2, e3} En S′els punts de la corba s´on P′(t) = (x′(t), y′(t), z′(t)) i volem expressar aquestes coordenades (coordenades X′) en el sistema de coordenades can`onic S, (coordenades X). Cal fer: X=AX′+K on A´es la matriu del canvi de base AB→C , formada pels vector de la nova base en columnes. Exercici 1 (Canvi de sistema de coordenades) 1. Definiu els punts A= (3,0,0), B= (0,3,0) i C= (0,0,3). Visualitzeu el pla, diem-li p, que passa per aquests tres punts (per exemple fent el pol´ıgon que passa per ells). Sobre aquest pla voldrem dibuixar una corba. 2. Considereu com a origen del nou sistema de refer`encia S′al punt K, baricentre dels punts A,BiC. 3. Per definir el nou sistema S′={K;u1, u2, u3}, d’eixos x′, y′, z′, coloqueu-los de la manera seg¨uent: u3que doni la direcci´o de l’eix z′, perpendicular al pla p, u1el vector unitari d’origen Ki final A(vector del pla p), u2=u3×u1 4. Sobre el pla p, dibuixarem la circumfer`encia que en el pla cartesi`a xy t´e la parametritzaci´o (Rcos(t), R sin(t)),0≤t≤2π En S′quina parametritzaci´o t´e? (heu de determinar quina de les tres coordenades ´es la nul·la). 5. Trobeu la parametritzaci´o de la circumfer`encia en el sistema de coordenades can`onic aplicant les equacions del canvi de base: X=AX′+K 6. Experimenteu amb altres corbes. Aqu´ı teniu una altra figura amb la corba param`etrica amb equaci´o st`andard al pla xy: (0.02 tcos(t),0.02 tsin(t), t/30),0≤t≤12π GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 5 PR ` ACTICA 4: Corbes de B´ezier Corbes de B´ezier definici´o i propietats. Algorisme de Casteljau. Operacions. Exercici 1 (Corba de B´ezier) Donats 2 punts: AiB, les corbes de B´ezier de grau 1 es defineixen com: B(t) = Curve((1 −t)A+tB, t, 0,1) Donats 3 punts no alineats: A, B iC, les corbes de B´ezier de grau 2 es defineixen com: B(t) = Curve((1 −t)2A+ 2(1 −t)tB +t2C, t, 0,1) Donats 4 punts, no tres d’ells alineats: A, B, C iDles corbes de B´ezier de grau 3 es defineixen com: B(t) = Curve((1 −t)3A+ 3(1 −t)2tB + 3(1 −t)t2C+t3D, t, 0,1) En general, donats n+ 1 punts P0,· · · , Pns’obtenen corbes de B´ezier de grau n(les m´es usades s´on les de grau 3). Teniu un exemple a l’exercici 6: corba de B´ezier de diferents graus, fins a 9, a R3. Q¨uestions: 1. Dibuixeu una corba de B´ezier de grau 3 (en la figura l’hem anomenat B´ezier3). Per quins punts de control passa la corba? ´ Es una combinaci´o af´ı dels punts de control, per qu`e? 2. Per definir un punt Pque es mogui sobre la corba de B´ezier3, creeu primer un lliscador pel par`ametre t, amb valor m´ınim 0, m`axim 1 i increment=0.01. Ara escriviu a l’input: P=Bezier3(t). Observeu les posicions del punt P segons els valors de t. Per a quins valors del lliscador obteniu els extrems de la corba? 3. Les coordenades de la corba de B´ezier son polinomis. Si les coordenades s´on par`aboles, quants punts de control t´e la corba de B´ezier? 4. Moveu els punts i observeu que la corba sempre es mant´e dins de la envolupant convexa dels punts de control, CH(A, B, C, D) (pol´ıgon convex m´es petit que cont´e als punts). 5. Si els punts de control estan alineats com ´es la corba de B´ezier que es genera? Exercici 2 (Algorisme de de Casteljau) Dibuixem quatre punts A, B,CiD(no tres d’ells alineats). Dibuixem el segment AB i sobre ell, un nou punt, E. En l’input escrivim: r=Distance(A,E)/Distance(A,B) o equivalentment r=AffineRatio(A,B,E) (Recordeu que amb el valor de rsabem que E=A+r AB) En el full de c`alcul (spreadsheet) escrivim: En A1: =A intro · · · · · · En A4: =D intro En B2: =A1+r(A2-A1) intro Marquem B2 i estirem la cantonada dreta inferior fins a la casella B4. Marquem els punts de la columna B i estirem la cantonada dreta inferior fins a la columna D. Quan soltem quedar`a una matriu triangular inferior. En la vista gr`afica desmarqueu A1, A2, A3A4, i B2 per deixar nom´es les etiquetes de inicials A, B,C,DiE. Dibuixeu els segments EB3, B3B4 i C3C4. En el men´u d’eines marquem l’icona de lloc geom`etric, Locus , (es troba en el quart bot´o comen¸cant per l’esquerra); i senyalem sobre el dibuix l’´ultim punt de l’esquema triangular, D4, i el punt Edel qual dep`en. En la vista algebraica apareixer`a Locus(D4,E) i en la vista gr`afica es dibuixar`a el lloc geom`etric, ´es a dir, la corba de B´ezier. Alternativa equivalent: Dibuixem A, B, C.D, definim un slider t, de 0 a 1, i el punt E= (1 −t)A+tB. En la fulla de c`alcul: entrem els punts de control en la primera columna A1..A4. En la casella B2 posem (1-t)A1+tA2, la copiem i arrosseguem fins D4. Finalment fem el lloc geom`etric de D4 i el lliscador t, ´es a dir, Locus(D4,t). Q¨uestions: 1. Considereu A= (2,−2), B = (3,3), C= (8,2) i D= (10,−3). (a) Trobeu les coordenades del punt Esituat sobre el segment d’extrems AiB, tal que  AE = (2/5)  AB. (b) Amb l’algoritme de de Casteljau trobeu a ma l’equaci´o de la corba de B´ezier de grau 3. Per a quins valors de t (par`ametre de la corba) passa pels punts A, D? (c) A l’esquema que heu trobat a l’apartat anterior, avalueu t=2/5 i comproveu que us d´ona l’esquema del full de c`alcul de la figura. Comproveu que fent t= 2/5 en la corba de B´ezier obteniu el punt D4 = (4.67,1.25). 2. Feu un dibuix que involucri diverses corbes de B´ezier de grau 3. Per a cada grup de quatre punts apliqueu l’algoritme de de Casteljau. Aqu´ı teniu un exemple en la figura seg¨uent: •Circumfer`encia De centre (c1, c2)i radi r α(t)=(c1+rcos t, c2+rsin t), t ∈[0,2π] •El·lipse De centre (c1, c2)i semieixos aib α(t)=(c1+acos t, c2+bsin t), t ∈[0,2π] •Cicloide α(t) = R(t−sin t), R(1 −cos t), t ≥0 Corba que descriu un punt Pfix d’una circumfer`encia de radi R que roda sobre una recta. 2R p P y x •Epicicloide α(t) = (R+r) cos t−rcos (R+r)t r,(R+r) sin t−rsin (R+r)t r, t≥0 Corba que descriu un punt Pfix d’una circumfer`encia de radi r que roda sobre una circumfer`encia de radi R. R Pr •Espiral logar´ıtmica α(t)=(aemt cos t, aemt sin t)t∈R (a > 0, m ∈Rfixats) •Clotoide de Cornu α(t) = Zt 0 cos(π 2u2) du,Zt 0 sin(π 2u2) du S’utilitza per unir rectes amb circumfer`encies •H`elix circular α(t)=(acos t, a sin t, bt)t > 0 (a > 0, b ∈Rfixats) Exercici 1 (H`elix circular) Una parametritzaci´o de l’h`elix circular ´es h(t) = (Rcos t, R sin t, bt), t1≤t≤t2, R > 0. 1. Dibuixeu l’h`elix circular, de radi R > 0 i pas de rosca b= 0. Definiu abans Ribcom a sliders per poder experimentar. Els extrems del par`ametre ttamb´e poden ser sliders per controlar el nombre de voltes. 2. Dibuixeu el cilindre que cont´e l’h`elix. 3. Experimenteu canviant l’ordre de les coordenades en la definici´o de l’h`elix. Exercici 2 (Epicicloides esf`eriques) Anem a construir epicicloides esf`eriques sobre una esfera. En primer lloc creem un parell de lliscadors per als par`ametres aib(aquests par`ametres ens permetran definir diferents corbes i la suma a+bens donar`a el radi al quadrat de l’esfera) i un altre lliscador cper al valor m`axim del par`ametre tde la corba (experimenteu amb valors positius al voltant de 175). Tamb´e definirem un parell de funcions f(t) i g(t) per descriure m´es f`acilment les coordenades de les epicicloides. 1. A l’input escrivim: f(t)=(a+b) sin(t)−bsin(t(1 + a/b)) g(t)=(a+b) cos(t)−bcos(t(1 + a/b)) 2. Definiu la corba: c=Curve(f(t), g(t),p4−(g(t))2−(f(t))2, t, 0, c) 3. Dibuixeu l’esfera sobre la qual estan les epicicloides. 4. Feu una simetria de l’epicicloide respecte del pla z= 0 fent servir la icona de simetria especular en la vista 3D. Exercici 3 (Parametritzaci´o racional) Anem a utilitzar una parametritzaci´o racional per descriure una circumfer`encia de centre (0,0) i radi r: γ(t) = r1−t2 1+t2, r 2t 1+t2, t ∈R(t→ ±∞) Definiu els lliscadors r, t1 i t2, el primer per experimentar amb el radi i els altres per controlar el valor inicial i el valor final del par`ametre de la corba. Q¨uestions: 1. Comproveu que les coordenades de la corba γ(t) = r1−t2 1+t2, r 2t 1+t2compleixen l’equaci´o impl´ıcita de la circumfer`encia x2+y2=r2. 2. Feu que el lliscador t1 prengui nom´es valors negatius i t2 nom´es positius. Experimenteu per esbrinar per quins valors del par`ametre obtenim la semicircunfer`encia per sobre de l’eix d’abscisses i quins per sota. 3. Experimenteu augmentant el valor m`axim de t2 i disminuint el m´ınim de t1. Creieu que podreu fer que la corba tanqui? 4. Si interpretem la corba com el cam´ı recorregut per una part´ıcula en funci´o del temps (par`ametre t), la derivada ens d´ona el vector velocitat. I la velocitat en qu`e la part´ıcula recorre la corba ´es el m`odul d’aquests vectors. Calculeu la derivada γ′(t) per a t= 0 i t= 1 i representeu els vectors obtinguts sobre els punts corresponents de la corba. La velocitat ´es la mateixa en tota la corba? 5. Considereu ara la parametritzaci´o α(t)=(rcos t, r sin t),0≤t≤2π. Calculeu α′(t) i comproveu que, en aquest cas, la velocitat ´es constant. GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 6.2 PR ` ACTICA 3: Geometria diferencial de corbes Corbes i propietats. Triedre de Frenet. Curvatura i torsi´o. Cercle osculador, evoluta. Corbes offset. Volem calcular alguns elements de la geometria diferencial que caracteritzen les corbes regulars al pla o a l’espai: curvatura, torsi´o, cercle osculador, evoluta i triedre de Frenet. Una corba parametritzada regular ´es una aplicaci´o α:I⊂R→Rn t7−→ α(t)=(x1(t),··· , xn(t)) derivable (com a m´ınim 3 cops) en tots els punts i tal que α′(t)= 0,∀t∈I, on t´es el par`ametre de la corba. Si α′(t) = 0 per a algun t∈I, en el punt corresponent no tindrem vector tangent i direm que ´es un punt singular. Triedre de Frenet:´ Es una refer`encia af´ı ortonormal de R3, adaptada a cada punt P=α(t0) d’una corba (regular) a l’espai i formada pels corresponents vectors tangent, binormal i normal.  t(t0)=α′(t0) ||α′(t0)||  b(t0)=α′(t0)×α′′(t0) ||α′(t0)×α′′(t0)|| n(t0)= b(t0)×t(t0) Donada la corba regular α(t), a R2o a R3, la curvatura en un punt de la corba P=α(t0) es defineix: k(t0) = ||α′(t0)×α′′ (t0)|| ||α′(t0)||3 Mesura el canvi de direcci´o del vector tangent quan ens movem al llarg de la corba (velocitat angular del vector tangent). Marca la tend`encia de la corba a separar-se del vector tangent en el punt. Recordeu que encara que estigu´essim en el pla (corba plana), per fer el producte vectorial de dos vectors s’han de considerar aquests dins de l’espai tridimensional. La torsi´o es defineix: torsio(t)=−det(α′(t0), α′′ (t0), α′′′ (t0)) ||α′(t0)×α′′(t0)||2 La torsi´o ´es la velocitat angular del pla rectificant (el pla generat pels vectors tangent i binormal). Reflecteix la desviaci´o de la corba respecte del pla osculador (el pla generat pels vectors tangent i normal). La torsi´o quantifica quant plana deixa de ser una corba en un punt. Si la corba ´es plana, aleshores t´e torsi´o nul·la perqu`e el vector binormal no canvia ja que en tots els punts de la corba ´es perpendicular al pla que la cont´e. El cercle osculador en un punt de la corba P=α(t0), on k(t0)= 0, es defineix com el cercle que t´e: (1) radi = 1 k(t0), invers de la curvatura en P. (2) centre = α(t0) + 1 k(t0)∗n(t0) s’anomena centre de curvatura. ´ Es a dir, el centre ´es un punt que est`a a una dist`ancia d’un punt Pde la corba igual a la donada pel radi (invers de la curvatura en P), en la direcci´o del vector normal. (3) I est`a dins del pla determinat per: Pi els vectors tangent  t(t0), i normal n(t0). La corba descrita pels centres de curvatura se’n diu evoluta. Les corbes offset s´on la generalitzaci´o de les rectes paral·leles. S´on corbes que s’obtenen despla¸cant una dist`ancia constant (l’offset) els punts d’una corba donada en la direcci´o normal a la corba. Exercici 1 (Corba a R2. Curvatura, cercle osculador, evoluta) AR2: Dibuixem 4 punts (pol´ıgon de control d’una corba de B´ezier), definim la corba i un punt que es mogui sobre ella. A l’input escrivim: Bezier=Curve((1 −t)3A+ 3(1 −t)2tB + 3(1 −t)t2C+t3D, t, 0,1) Creem un lliscador per al par`ametre ti despr´es a l’input escrivim P=Bezier(t) punt sobre la corba. O b´e pintem el punt Pdirectament sobre la corba (hi quedar`a ancorat), i despr´es el movem manualment sobre ella. k=Curvature(P, Bezier) d´ona el valor de la funci´o curvatura que ´es aquella que assigna a cada punt Pel valor de la curvatura amb signe: ´es positiu si la circumfer`encia osculadora (parametritzada en la mateixa direcci´o que la corba en el punt de contacte) es trasllada en sentit antihorari, i negativa altrament. Podeu afegir un text a la figura indicant la curvatura. Si voleu que vagi mostrant els diferents valors que pren la curvatura, haureu de seleccionar dins del text l’“objecte”que ho calcula (en aquest cas, k). O=OsculatingCircle(P, Bezier) aquesta instrucci´o nom´es val a R2i d´ona el cercle osculador en el punt P. Q¨uestions: 1. Moveu un punt sobre la corba de B´ezier i contesteu raonadament: (a) Si augmenta la curvatura (si feu servir la funci´o curvatura, heu d’aplicar-li el valor absolut), el radi del cercle osculador augmenta o disminueix? (b) Quina relaci´o observeu entre la forma de la corba i el tamany del cercle osculador? (c) Dibuixeu una circumfer`encia amb la icona que demana el centre i el radi: el centre pot ser qualsevol punt del pla i el radi feu que sigui el valor invers de la curvatura que tingueu en un punt Pde la corba. Despr´es, movent el seu centre, sobreposeu la circumfer`encia al cercle osculador en Pper comprovar que tenen el mateix radi. (d) Observeu el signe de la funci´o curvatura al moure el punt sobre la corba. En cas que el signe canvi¨ı, observeu si el canvi es produeix en un punt d’inflexi´o de la corba. En aquests punts la curvatura val 0, el cercle osculador t´e radi infinit (´es una recta) i el vector normal a cada banda del punt t´e sentits contraris. Fem un altre exemple a R2, dibuixem una cicloide. A l’input escrivim: a=Curve(2(t−sin(t)),2(1 −cos(t)), t, 0,15 ∗pi) Creem un lliscador per al par`ametre t. Q=a(t) dibuixar`a un punt sobre la corba. k=Curvature(Q,a) O=OsculatingCircle(Q,a) vt=a′(t)vector tangent. Observeu que queda representat amb l’origen a (0,0). El col·loquem amb l’origen a Q seleccionant l’opci´o en la barra superior de vector des d’un punt i l’anomenem t. vn=Rotate(vt,-pi/2) vector perpendicular a vt (tamb´e es pot obtenir amb la icona de rotar al voltant d’un punt). El vector normal sempre s’obt´e girant el tangent un angle recte, en aquest cas, en sentit horari (el vector normal apunta en la direcci´o on la corba ´es c`oncava). un=UnitVector(vn) fem unitari el vector vn. Despr´es el representem des d’el punt Qi l’anomenem n. Utilitzarem el vector normal n, per calcular el centre de curvatura. C=a(t)+(1/abs(k))n ´es el centre del cercle osculador. Q¨uestions: 1. ´ Es la cicloide una corba regular? En quins punts a′(t) = 0? Sabent que el vector normal en un punt arbitrari de la corba ´es n(t) = 2 sin t √(2−2 cos2t+4 sin2t,−(2−2 cos t) √(2−2 cos t)2+4 sin2t, calculeu n(π/2), i trobeu el centre del corresponent cercle osculador. 2. Considereu la hipocicloide a(t) = (cos3(t),sin3(t)),0≤2t≤2π. Esbrineu si hi ha punts on a′(t) = 0. ´ Es una corba regular? Exercici 2 (Corba a R2. Corbes offset) Anem a construir les corbes offset d’un conjunt de par`aboles, per exemple, y=x2 4a, a ∈R. En primer lloc creem un lliscador per al par`ametre a. A l’input escrivim: c=Curve(2at, at2, t, −15,15) Creem un lliscador per al par`ametre tper poder definir un punt gen`eric de la corba. P=c(t) Tamb´e necessitem el lliscador per calcular un vector tangent fent la derivada i el vector normal com el perpendicular normalitzat: vt=c′(t) vn=Rotate(vt,pi/2) vector perpendicular a vt. Podem fer-ho aix´ı perqu`e, en aquest cas, el vector normal sempre s’obt´e girant el tangent un angle recte en sentit antihorari. un=UnitVector(vn) Aquests vectors aniran canviant segons canvi¨ı la posici´o del punt P. Els representem amb l’origen a P, (amb la icona de crear vector des d’un punt) i els anomenem tin, respectivament. Ara les corbes offset es defineixen com les corbes situades a una dist`ancia “d” de la par`abola, on la dist`ancia es mesura en la direcci´o del vector normal en cada punt P. Necessitarem un lliscador per al par`ametre d. PuntOffset=P+d n Finalment la corba offset associada al valor del par`ametre d´es el lloc geom`etric del PuntOffset i el par`ametre tdel qual dep`en. Busqueu la icona de lloc geom`etric en el men´u i marqueu Pi PuntOffset. Offset=Locus(PuntOffset,t) Si marquem “animation on”en les opcions del lliscador de danirem veiem les diferents corbes offset a dist`ancia “d” de la par`abola. Si les volem veure totes alhora, cliquem sobre una corba offset amb el bot´o dret del ratol´ı i marquem “trace on”. Q¨uestions: 1. L’evoluta ´es la corba descrita pels centres de curvatura (centres dels cercles osculadors): e(t) = c(t) + 1 k(t)n(t), on c(t) ´es la corba, k(t) la curvatura i n(t) el vector normal. Observeu l’el·lipse de la figura seg¨uent i la seva evoluta (corba vermella). En quins punts t´e l’el·lipse curvatura m´ınima? En quins punts t´e curvatura m`axima? Observeu que l’evoluta t´e un punt singular quan la curvatura assoleix un m`axim o m´ınim local. 2. En la figura seg¨uent observeu la relaci´o entre la corba les offsets (en vermell) i l’evoluta (en blau clar), en el punt de curvatura m`axima. En la par`abola p(t) = (2at, t2), la corba offset a dist`ancia d= 2apassa per un punt singular de l’evoluta. Observeu qu`e passa amb les corbes offset quan d > 2a? 3. En una circumfer`encia de radi R, raoneu quant val la curvatura en qualsevol dels seus punts. 4. Com s´on les corbes offset d’una circumfer`encia? Raoneu quina ´es la seva evoluta. Exercici 3 (Corba a R3. Triedre de Frenet) Donada una corba a R3, volem obtenir el triedre de Frenet. Primer definim les coordenades de la corba com a funcions (per tant, no necessitem definir cap lliscador): f(t), g(t) i h(t). Per exemple, f(t) = (1/3)(sin(3t)−tcos(3t)) g(t) = (1/3)(cos(3t)−tsin(3t)) h(t) = t Ara definim la corba i un punt gen`eric d’ella. a = Curve(f(t), g(t), h(t), t, 0,15pi) Per al punt gen`eric sobre la corba necessitem definir un lliscador per al par`ametre t. P=a(t) Per calcular les derivades successives de la corba, cal definir abans un lliscador per al par`ametre t(per`o ja el tenim). vt =Vector((f′(t), g′(t), h′(t))) ut =UnitVector(vt)´es el vector tangent ancorat a l’origen. vt2 =Vector((f′′ (t), g′′ (t), h′′(t))) ub =UnitVector(Cross(vt, vt2)) ´es el vector binormal ancorat a l’origen. un=Cross(ub, ut)´es el vector normal ancorat a l’origen, (no cal fer-lo unitari perqu`e el producte vectorial de dos vectors unitaris ortogonals ´es un vector unitari). Ara clicant la icona de vector des d’un punt seleccionarem en la vista gr`afica: 1) el punt sobre la corba, que ser`a P, i 2) un vector que ser`a ub, o un, o ut, segons volguem crear el vector binormal, normal o tangent, respectivament. Al fer-ho crear`a els punts P′, o P′ 2, o P′ 1que seran els extrems dels vectors del triedre (refer`encia sobre P), i apareixeran aquests vectors en la vista algebraica. Els punts P′, o P′ 2iP′ 1es poden desmarcar i als vectors els hi podeu canviar el nom per Binormal, Normal i Tangent. Binormal=Vector(P, P′)Normal=Vector(P, P′ 2)Tangent=Vector(P, P′ 1) Podem dibuixar els plans seg¨uents: osculador=Plane(P, P′ 1, P′ 2)cont´e normal i tangent rectificant=Plane(P, P′, P′ 1)cont´e binormal i tangent Q¨uestions: 1. Si considereu una corba plana, com ´es el vector binormal? 2. Considereu una circumfer`encia al pla XY , a(t)=(Rcos(t), R sin(t),0). Calculeu el triedre de Frenet en un punt gen`eric de la circumfer`encia. 3. Quant val la torsi´o en qualsevol punt d’una corba plana? 4. Considereu l’h`elix α(t) = (cos t, sin t, 2t), t ∈R. Calculeu el triedre de Frenet, la curvatura i la torsi´o en un punt arbitrari. Exercici 4 (Corba a R3. Curvatura, torsi´o, cercle osculador, evoluta i corbes offset) Definirem una corba de B´ezier a R3i treballarem sobre la mateixa. AR3: A la vista gr`afica 3D dibuixem 4 punts: A, B, C iD. A l’input escrivim: Les funcions que defineixen les coordenades de la corba (les podeu desmarcar de la vista algebraica perqu`e no cal veure-les en la vista gr`afica). I definim la corba. f(t) = (1 −t)3x(A) + 3(1 −t)2tx(B) + 3(1 −t)t2x(C) + t3x(D) g(t) = (1 −t)3y(A) + 3(1 −t)2ty(B) + 3(1 −t)t2y(C) + t3y(D) h(t) = (1 −t)3z(A) + 3(1 −t)2tz(B) + 3(1 −t)t2z(C) + t3z(D) Bezier=Curve(f(t), g(t), h(t), t, 0,1) Creem un lliscador per al par`ametre ti definim un punt gen`eric de la corba aix´ı: P=Bezier(t) Per calcular les derivades successives de la corba, cal definir abans un lliscador per al par`ametre t(per`o ja el tenim). vt =Vector((f′(t), g′(t), h′(t))) fixeu-vos b´e en no deixar-vos cap par`entesi! vt2 =Vector((f′′ (t), g′′ (t), h′′(t))) vb =Vector(Cross(vt, vt2)) k=Curvature(P, Bezier) Aleshores, abs(k) =sqrt(vb*vb)/(sqrt(vt*vt))3que ´es la curvatura en P. Per obtenir el cercle osculador, necessitem el vector normal a P, el centre de curvatura i el radi de curvatura (invers de la curvatura): ub =UnitVector(vb) ´es el vector binormal ancorat a l’origen. ut =UnitVector(vt)´es el vector tangent ancorat a l’origen. un =Cross(ub, ut)´es el vector normal ancorat a l’origen. radi=1/abs(k) Centre= P+ (1/abs(k)) ∗un ´es important escriure el nom dels punts en maj´uscula (Centre) perqu`e altrament el programa interpretar`a que voleu dibuixar un vector. Recordeu que OsculatingCircle(P,“nom-corba”) no funciona en R3. Anem a la barra d’eines 3D i cliquem la icona de cercle amb centre, radi i direcci´o. Marquem en la vista gr`afica el Centre i el vector vb, i ens demanar`a el radi on escrivim 1/abs(k). Ja tenim el cercle osculador. Calculem l’evoluta de la corba. A l’input escrivim: Evoluta=Locus(Centre,t) O b´e fem servir la icona de lloc geom`etric i marquem el Centre i el lliscador de t. AR3: Calculem tamb´e la torsi´o de la corba. A l’input escrivim: vt3=Vector((f”’(t), g”’(t), h”’(t))) recordeu que vt ivt2 ja els hem definit en el c`alcul de la curvatura. M={{x(vt), y(vt), z(vt)},{x(vt2), y(vt2), z(vt2)},{x(vt3), y(vt3), z(vt3)}} torsio=-Determinant(M)/(vb*vb) Q¨uestions: 1. En el cas de wA= 0, quina ´es la direcci´o asimpt`otica que pren la corba? 2. En el cas de wB= 0, Calculeu el vector posici´o de B. Calculeu el vector tangent (no necess`ariament unitari) a la corba Ren A, ´es a dir, R′(0). Comproveu que defineixen la mateixa direcci´o. GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 8 PR ` ACTICA 7: B-splines i NURBS Disseny de c`oniques i corbes lliures amb B-splines i NURBS. Utilitzarem l’aplicatiu interactiu que trobareu en la p`agina web: http://geometrie.foretnik.net/files/NURBS-en.swf Observaci´o: l’arxiu NURBS-en.swf que thas descarrgat, es pot obrir anant a l’adre¸ca https://ruffle.rs/demo/ i seleccionant-lo en la pestanya “Local SWF: Select File”. Per descriure una corba NURBS, hem de determinar: el grau, els punts de control amb el vector de pesos associats i el vector dels nusos (knot-vector) que descriur`a els trams de la corba. A m´es en una NURBS es verifica la relaci´o: n+m=p, on n=grau, m= #trams, p= #punts-control. Recordeu que una corba NURBS ´es una generalitzaci´o de les B-splines i les B´ezier ja que: una NURBS amb tots els pesos iguals ´es una B-spline, i que una B-spline amb un sol tram ´es una corba B´ezier. Exercici 1 (Disseny de c`oniques (cercles) amb NURBS) Q¨uestions: 1. En la figura s’ha aconseguit un cercle sencer amb una NURBS. Digueu quin ´es el seu grau, el nombre de punts de control, el vector de pesos associats i el vector dels nusos (knot-vector). 2. Com s’aconsegueix que la corba passi pel primer i per l’´ultim punt de control? 3. Com s’aconsegueix que la corba sigui tancada? 4. Qu`e s’aconsegueix repetint tants cops com el grau de la corba un nus intern? 5. Quants trams t´e la corba? Per qu`e hi ha dos trams que no es veuen? 6. Comproveu que el pes dels v`ertexs del triangle val cos(α/2), on α´es l’angle que formen dels costats incidents. Exercici 2 (Disseny d’una corba amb NURBS) Anem a fer el disseny d’una lletra, la “B”, fent servir NURBS. 1ªaproximaci´o Escollim una corba NURBS de grau 3, amb 9 punts de control i el vector uniforme de nusos seg¨uent: knot-vector=(0,0,0,0, 0.17, 0.33, 0.5, 0.67, 0.83, 1,1,1,1) Si identifiquem P0 amb P8 aconseguim una corba tancada. Q¨uestions: 1. Quants trams t´e la corba de la figura? 2. Observeu que el primer i ´ultim nus (t=0, t=1) estan repetits 4 cops, ´es a dir, n+ 1 cops donat que n= 3 ´es el grau. Qu`e s’aconsegueix amb aquesta repetici´o de nusos (no interns)? 2ªaproximaci´o Farem que la corba passi per algun punt de control intern. Per aconseguir-ho, repetirem alguns punts de control (en lloc de 9 punts en farem servir 13 comptant les repeticions). Tamb´e farem repetici´o de nusos interns. knot-vector=(0,0,0,0, 0.1, 0.2, 0.3, 0.5, 0.5, 0.5, 0.7, 0.8, 0.9, 1,1,1,1) Q¨uestions: 1. Quants trams t´e la corba de la figura? 2. Quins nusos estan repetits? Indiqueu quants cops estan repetits i que s’aconseguiex en cada cas. 3. Observeu que P0 est`a identificat amb P12. Quins altres punts s’han identificat i, per tant, estan repetits? Indiqueu quants cops i el resultat de fer-ho. 3ªaproximaci´o Partim de l’aproximaci´o 2, ´es a dir, una NURBS de grau 3, 13 punts de control i el vector uniforme de nusos: knot-vector=(0,0,0,0, 0.1, 0.2, 0.3, 0.5, 0.5, 0.5, 0.7, 0.8, 0.9, 1,1,1,1) Ara per acabar de moldejar la corba, li indiquem a l’aplicatiu que assignem pesos (altrament tots els punts tenen el mateix pes igual a 1). En la figura, al costat de cada punt de control li podem dir quin ´es el pes que volem. Q¨uestions: 1. Quin ´es el vector de pesos de la corba de la figura? 2. Qu`e passa quan augmentem el pes associat a un punt de control? I si el disminu¨ım? 3. Qu`e passa si multipliquem tots els pesos per la mateixa constant? Fes servir l’aplicatiu per dissenyar una altra lletra (o figura lliure) i documenta com l’has obtingut. GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 9 PR` ACTICA 8: Superf´ıcies Alguns tipus de superf´ıcies: reglades, de revoluci´o i tubulars,... Superficies de B´ezier i continu¨ıtat G1per a la uni´o. Depenent de la propietat en qu`e ens fixem podem obtenir diferents classificacions de les superf´ıcies. Aqu´ı mencionem alguns tipus. •Superf´ıcies minimals Si un filferro tancat, corbat a l’espai, s’introdueix en un l´ıquid sabon´os, en treure’l s’obt´e una pel·l´ıcula. A causa de la tensi´o superficial del l´ıquid, aquesta pel·l´ıcula ´es una superf´ıcie en equilibri. ´ Es una superf´ıcie d’`area m´ınima, entre totes les que tenen la mateixa vora (el filferro). Es pot demostrar que aquesta propietat ´es equivalent al fet que la curvatura mitjana Hsigui nul·la. A les superf´ıcies amb aquesta propietat se’n diu superf´ıcies minimales. Exemples de superf´ıcies minimals s´on l’helicoide (escala de caragol, exemple de superf´ıcie reglada) i el catenoide (superf´ıcie de revoluci´o de la caten`aria). •Superf´ıcies desenvolupables Un cas particular de superf´ıcie reglada ´es la desenvolupable. Intu¨ıtivament una superf´ıcie ´es desenvolupable si es pot construir a partir d’un full de paper, desenvolupant la superf´ıcie fins a obtenir una superf´ıcie plana. Exemples de superf´ıcies desenvolupables s´on el con i el cilindre. Una condici´o necess`aria i suficient perqu`e una superf´ıcie sigui localment desenvolupable ´es que la curvatura gaussiana d’aquesta superf´ıcie sigui id`enticament nul·la. •Superf´ıcies (no) orientables De forma intu¨ıtiva, l’orientabilitat d’una superf´ıcie t´e a veure amb les seves cares. Si peguem els extrems d’una cinta allargada s’obt´e una superf´ıcie amb dues cares (l’exterior i la interior de la banda) i, per tant, orientable. Per`o si abans de pegar els extrems es d´ona mitja volta a un d’ells s’obt´e una banda de M¨obius que ´es una superf´ıcie no orientable. La majoria de les superf´ıcies s´on orientables. Dos exemples de superf´ıcies no orientables s´on el pla projectiu i l’ampolla de Klein. Exercici 1 (Superf´ıcie no orientable. Banda de M¨obius) La parametritzaci´o d’una banda de M¨obius ´es: Surface(c(a+vr sin(u/2)) cos(u), c(a+vr sin(u/2)) sin(u), vr cos(u/2), u, 0,2π, v, −1,1) Definiu els lliscadors: aper a la longitud de la cinta, rper a l’amplada i cel radi. 1. Experimenteu amb els lliscadors. 2. Comproveu que la cinta t´e nom´es una cara recorrent la banda des d’un punt qualsevol fins a tornar a ell. Exercici 2 (Superf´ıcie reglada) Definim dues corbes parametritzades sobre el mateix interval. La superf´ıcie s’obt´e en considerar els segments que uneixen punts d’igual par`ametre d’ambdues corbes (interpolaci´o lineal). En l’exercici seg¨uent utilitzarem dues Beziers de grau 3. AR3: En la vista gr`afica de R3, dibuixem els punts de control de les dues corbes de B´ezier: A, B, C, D i E, F, G, H. A l’input escrivim: a=Curve((1 −t)3A+ 3(1 −t)2tB + 3(1 −t)t2C+t3D, t, 0,1) b=Curve((1 −t)3E+ 3(1 −t)2tF + 3(1 −t)t2G+t3H, t, 0,1) SReglada=Surface((1 −s)a(t) + sb(t), s, 0,1, t, 0,1) Aquesta ´es una superf´ıcie reglada perqu`e est`a formada pels segments que uneixen els punts d’igual valor del par`ametre ten ambdues corbes. Si volem veure aquests segments, constru¨ım un lliscador per al par`ametre ten la vista gr`afica de R2. I per a cada valor de tel segment ´es la corba: Curve(SReglada(s, t), s, 0, 1) Si en les propietats del lliscador posem animation, i en les propietats de la corba que acabem de crear posem trace on, veurem de forma animada aquests segments. Exercici 3 (Superf´ıcie reglada. Helicoide) AR3, l’helicoide ´es la superf´ıcie formada per les infinites rectes que uneixen els punts d’una h`elix circular amb els del seu eix central i s´on perpendiculars a aquest eix. Considereu l’h`elix donada per: Curve(Rcos(t), R sin(t), ct, t, 0,8π) Que gira al voltant de l’eix z. Curve(0,0, ct, t, 0,10) A partir d’aquestes corbes obteniu l’helicoide. Superf´ıcie de revoluci´o •La corba generatriu ´es la que gira al voltant d’un eix per generar la superf´ıcie γ(t)= (f(t),0, g(t)),t∈(a, b), s ∈(0,2π) corba regular plana, inclosa al pla {y= 0}; l’eix de gir ´es OZ. •La superf´ıcie de revoluci´o obtinguda es parametritza com: σ(s, t)= (f(t) cos s, f(t) sin s, g(t)),t∈(a, b), s ∈(0,2π) Corbes coordenades: ∗Els meridians,σ(s0, t). ∗Els paral·lels,σ(s, t0). Meridià Parallel x y z u Generatriu Exercici 4 (Superf´ıcie de revoluci´o) Farem girar una corba de B´ezier de grau 3, situada al pla y= 0, al voltant de l’eix OZ, per obtenir una superf´ıcie de revoluci´o. AR3: A l’input escrivim: Els 4 punts de control dins del pla y= 0 (segona coordenada nul·la): A, B, C iD. a=Curve((1 −t)3A+ 3(1 −t)2tB + 3(1 −t)t2C+t3D, t, 0,1) Per`o volem les coordenades de la corba. Per obtenir-les fem: f(t)=x(a) g(t)=y(a) h(t)=z(a) Ara ja podem definir la superf´ıcie de revoluci´o: S= Surface(f(t) cos(s), f(t) sin(s), h(t), t, 0,1, s, 0,2π) Exercici 5 (Superf´ıcie de revoluci´o. Catenoide) Considereu la caten`aria situada al pla y= 0 de parametritzaci´o: γ(u) = (cosh u, 0, u),−10 ≤u≤10 Feu girar la caten`aria al voltant de l’eix OZ per obtenir la catenoide, superf´ıcie de revoluci´o. Exercici 6 (Superf´ıcie de revoluci´o. Tor) 1. Considereu la circumfer`encia c(t)=(R+rcos(t),0, r sin(t)), on R≥r > 0. Descriviu en quin pla se situa, quins s´on el centre i radi de la mateixa. 2. Dibuixeu l’anterior circumfer`encia amb la instrucci´o Curve per`o creeu primer un parell de lliscadors amb valors positius per als par`ametres Rir, i poseu rcom a valor m´ınim de R. 3. Ara gireu-la al voltant de l’eix OZ, creant la corresponent superf´ıcie de revoluci´o. Quina ´es la superf´ıcie que obteniu? Superf´ıcie tubular Partim d’una corba directriu que jugar`a el paper que t´e l’eix en les superf´ıcies de revoluci´o. Els punts de la corba seran els centres de les circumfer`encies generatrius de radi constant (R) i que se situen en el pla format pels vectors normal n(t) i binormal b(t), associats al punt de la corba a(t) (pla perpendicular al vector tangent de la corba). a(t)=(f(t), g(t), h(t)), t ∈[a, b] aleshores la superf´ıcie tubular ´es: S(t, s) = a(t) + Rcos(s)n(t) + Rsin(s)b(t), t ∈[a, b], s ∈[0,2π] Farem servir la mateixa corba de la pr`actica 3, exercici 3 (Triedre de Frenet). Recordeu que: Triedre de Frenet:´ Es una refer`encia af´ı ortonormal de R3, adaptada a cada punt P=α(t0) d’una corba (regular) a l’espai i formada pels corresponents vectors tangent, binormal i normal.  t(t0)=α′(t0) ||α′(t0)||  b(t0)=α′(t0)×α′′(t0) ||α′(t0)×α′′(t0)|| n(t0)= b(t0)×t(t0) ~n ~ b s R Rsin s Rcos s Exercici 7 (Superf´ıcie tubular) AR3: f(t) = (1/3)(sin(3t)−tcos(3t)) g(t) = (1/3)(cos(3t)−tsin(3t)) h(t) = t a=Curve(f(s), g(s), h(s), s, 0,15 pi) Per definir P, punt gen`eric sobre la corba, necessitem un lliscador pel par`ametre t. El farem servir tamb´e per calcular les derivades. P= (f(t), g(t), h(t)) vt =Vector((f′(t), g′(t), h′(t))) ut =UnitVector(vt)´es el vector tangent ancorat a l’origen. vt2 =Vector((f′′(t), g′′(t), h′′(t))) ub =UnitVector(Cross(vt, vt2)) ´es el vector binormal ancorat a l’origen. un=UnitVector(Cross(ub, ut)) ´es el vector normal ancorat a l’origen. Ara clicant la icona de vector des d’un punt, seleccionarem en la vista gr`afica el punt P, i despr´es un vector que ser`a ub, o un, o ut segons volguem crear el vector binormal, normal o tangent, respectivament. Al fer-ho crear`a els punts P′, o P′ 2, o P′ 1que seran els extrems dels vectors del triedre (refer`encia sobre P), i apareixeran aquests vectors en la vista algebraica. Els hi podeu canviar el nom per Binormal, Normal i Tangent. 1. Binormal=Vector(P, P′) 2. Normal=Vector(P, P′ 2) 3. Tangent=Vector(P, P′ 1) Stubular= Surface(a(t) + Rcos(s)Normal+Rsin(s)Binormal, t, 0,15 pi, s, 0,2pi) Q¨uestions: Troveu superf´ıcies offset a partir de la superf´ıcie z= cos(x+y). Per obtenir diferents colors podeu fer que en les propietats avan¸cades de la superf´ıcie els colors depenguin del lliscador. GD Geometria per al disseny Pr`actiques 2022-23 Q2 EEBE-UPC Merc`e Claverol 10 PR ` ACTICA 9: Voronois Triangulaci´o de Delaunay. Diagrama de Voronoi. Diagrames de Voronoi d’ordre superior. El diagrama de Voronoi ´es una de les eines m´es importants per resoldre problemes de proximitat. ´ Es un recurs fonamental dins de la Geometria Computacional. A m´es, t´e moltes aplicacions en diversos `ambits cient´ıfics, t`ecnics i art´ıstics. Donat un conjunt de punts Sen el pla euclidi, el seu diagrama de Voronoi, DV(S), ´es la descomposici´o del pla en regions formades pels punts m´es propers a cadascun dels punts de S. Cadascuna d’aquestes regions t´e doncs, un punt associat (el punt de Sm´es proper) i ´es una cara (fitada o no) del diagrama de Voronoi. La cara associada al punt pi∈Ss’obt´e com la intersecci´o dels semiplans h(pi, pj), que contenen apii estan definits pels bisectors bpipj, de piamb cadascun dels altres punts pjde S. Per tant, resulta una regi´o poligonal convexa (que pot ser no fitada). V(pi) = n \ j=1,j=i h(pi, pj) Diem que els punts de Sestan en posici´o general si no hi ha 3 alineats ni 4 cocirculars; altrament, s´on casos degenerats. •Un punt q´es v`ertex de DV (S) si i nom´es si el cercle m`axim buit centrat en qcont´e tres (o m´es, si ´es un cas degenerat) punts de Sa la seva frontera. Cada v`ertex t´e doncs, tres arestes incidents, si els punts de Sestan en posici´o general. •El bisector de dos punts de Sdefineix una aresta del DV (S) si i nom´es si existeix un punt qsobre aquesta bisectriu tal que el cercle m`axim buit centrat en qcont´e nom´es a aquests dos punts a la seva frontera. Figura 1: Cada v`ertex ´es el centre d’un cercle amb nom´es tres punts de Sa la frontera (cercle taronja). Cada punt d’una aresta ´es centre d’un cercle amb nom´es dos punts de Sa la frontera (cercles blaus). Triangulaci´o de Delaunay El diagrama de Voronoi d’un conjunt de punts, DV (S) i la triangulaci´o de Delaunay DT (S) s´on grafs duals. Cada triangle de la TD(S) es correspon amb un v`ertex del DV(S) que ´es el centre del cercle circumscrit al triangle. Dos v`ertexs estan units si els triangles s´on adjacents. DV (S) DT (S) (blau) •La triangulaci´o de Delaunay T D(S) maximitza els angles interiors dels triangles evitant triangles massa fins. •Els cercles que circumscriuen un triangle de T D(S) no contenen punts de Sen el seu interior. •Si un cercle passant per dos punts de Sno cont´e cap altre en el seu interior, el segment que uneix els dos punts ´es una aresta de la DT (S). Diagrames de Voronoi d’ordre superior El diagrama de Voronoi (tamb´e diagrama de Voronoi d’ordre 1) es generalitza a diagrames d’ordre superior DVk(S), amb 1 ≤k≤n−1. El diagrama de Voronoi d’ordre k,DVk(S), descomposa el pla en regions associades als kve¨ıns m´es propers. En la figura, es mostra V3(S), on S={0,1,...,9}. Cada cara del diagrama t´e associat un subconjunt tres punts de S, els tres m´es propers a qualsevol punt de la cara. Exercici 1 (Casos degenerats) Quan els punts de Sestan en posici´o general, els v`ertexs del diagrama tenen grau 3 (3 arestes incidents). Esbrineu com s´on els diagrames en els casos degenerats. 1. En la vista gr`afica del Geogebra introdueix dos conjunts de punts: un d’alineats i un altre de cocirculars. 2. Crea dues llistes, L1iL2, amb els alineats i els cocirculars, respectivament. 3. Aplica la instrucci´o Voronoi a cadascuna de les llistes: Voronoi(L1),Voronoi(L2) En el cas de L1, el programa no resol. Dedueix com ha de ser el diagrama de Voronoi en aquest cas. Descriu tamb´e com ´es en el cas dels punts cocirculars. Exercici 2 (Diagrama de Voronoi) Hi ha diferents m`etodes per a la construcci´o del diagrama de Voronoi d’un conjunt de punts. En aquest exercici treballarem el m`etode de dividir i v`encer Ho farem amb Geogebra. 1. En la vista gr`afica introdueix un conjunt de punts en posici´o general. Separa els punts en dos subconjunts, crean dues llistes (L1 i L2). Fes el Voronoi de cadascuna de les llistes: Voronoi(L1),Voronoi(L2) 2. Obtindrem una poligonal formada per trossos de bisectors: (a) Dibuixa el bisector (en la figura AG) dels dos punts amb ordenada m´es gran de cadacuna de les llistes (fes servir la icona de perpendicular bisector). (b) Recorre el bisector de dalt a baix fins a intersecar algun dels diagrames. Quan aix`o passi, busca un nou bisector entre dos punts: en lloc dels dos d’abans, has d’intercanviar nom´es el punt associat a la regi´o que deixes pel associat a la regi´o en la que entres (en la figura, vas de la regi´o del Aa la del B, per tant, intercanvies Aper B, ´es a dir, passes del bisector AG al BG). (c) Repeteix el proc´es fins que no hi hagi m´es talls amb l’´ultim bisector considerat. 3. Per ´ultim, retallem arestes a banda i banda de la poligonal obtinguda: eliminem la part dreta de les arestes del diagrama de l’esquerra i la part esquerra de les arestes del diagrama de la dreta. El resultat obtingut ´es el diagrama de Voronoi del conjunt total de punts, DV (L1∪L2). Q¨uestions: 1. Suposa que has de tra¸car el despla¸cament d’un robot entre dos grups d’obstacles, quina seria la millor traject`oria? 2. Suposa que el teu conjunt de punts representa les ubicacions d’hospitals en una ciutat. Ara volem trobar el millor lloc per ubicar un nou hospital dins del terreny delimitat pels hospitals que ja hi ha, per`o el m´es lluny possible de qualsevol d’ells. ´ Es a dir, el nou hospital ha de maximitzar la m´ınima dist`ancia a un altre hospital. On el posaries? Exercici 3 (Triangulaci´o de Delaunay) En la vista gr`afica del Geogebra introdueix un conjunt de punts en posici´o general (´es a dir, no 3 alineats, ni 4 cocirculars). Crea una llista de nom Lamb els punts. 1. Fes l’envolupant convexa dels punts amb la instrucci´o ConvexHull(L). Triangula l’interior amb triangles poc regulars (algun allargat). 2. Fes l’exploraci´o dels triangles passant un cercle pels seus v`ertexs: (a) Si no cont´e cap punt, passa al triangle adjacent. (b) Si cont´e un punt Pal seu interior, tal que P´es el v`ertex d’un triangle que comparteix aresta amb l’explorat i ambd´os triangles formen un quadril`ater convex, fes un flip, ´es a dir, canvia l’aresta compartida (que ´es una diagonal) per l’altra diagonal del quadril`ater. Afegeix els nous triangles a la llista per explorar. 3. Si no queden triangles per explorar, el resultat ´es la DT (S). Comprova-ho aplicant la instrucci´o DelaunayTriangulation(L). A B C P (a) (b) Figura 2: (a) Triangulaci´o de S(conjunt de 9 punts), i flip de l’aresta BC per AP (intercanvi de diagonals en el quadril`ater de v`ertexs A, B, C, P). (b) Per al mateix conjunt de punts S, la triangulaci´o de Delaunay, T D(S). Exercici 4 (Diagrames de Voronoi d’ordre superior) Anem a treballar amb l’Ipe. Utilitzarem diferentes capes (“layers”); a la barra de dalt hi ha la icona per crear-les. Recorda que nom´es podem treballar dins d’una capa quan aquesta est`a activa (color groc). Si no ho est`a, s’activa fent doble clic amb el ratol´ı sobre el seu nom. 1. En la primera capa: pinta un conjunt de punts, que direm S, en posici´o general (´es a dir, no 3 alineats, ni 4 cocirculars). Canvia el nom de la capa que surt per defecte, per exemple, d´ıga-li punts. 2. Crea una nova capa amb el nom de DV1 i posa-la activa. Si deixes marcada (no activa) la capa dels punts, podr`as marcar-los amb el ratol´ı i bucar i clicar en les ipelets l’opci´o de Voronois diagrams, Voronoi diagram. 3. Repeteix el proc´es amb dues capes m´es, una DV2 i una altra DV3, clicant en ipelets dins de Voronois diagrams l’opci´o Order 2-Voronoi diagram i3-Voronoi diagram, respectivament. 4. Crea una nova capa amb el nom de punts-etiqueta. En aquesta capa activa, c`opia els punts i posa’ls nom (1,2,...). Q¨uestions: 1. Quins punts estan associats a cares no fitades de DV1(S)? 2. En la capa DV 1, escull una regi´o Ri, associada a un dels punts, i. Crea una nova capa AUX amb tots els punts llevat del ii troba el seu diagrama de Voronoi DV (S\ {i}). Observa la intersecci´o Ri∩DV (S\ {i}) marcant les dues capes DV 1iAUX, i dibuixa-la en una nova capa que ser`a la que estigui activa. Observa que has obtingut la part del DV2(S) que est`a dins de la regi´o Ridel DV1(S) (est`as obtenint informaci´o de qui ser`a el segon punt m´es proper). Si repeteixes el proc´es en totes les regions de DV1(S), obtens tot DV2(S). 3. Escull una regi´o del DV2(S) i esbrina quins s´on els dos punts m´es propers a ella. Ara fes el mateix que a l’apartat anterior per`o fent el diagrama de Voronoi de tots els punts llevat d’aquests dos. 4. Descriu com obtenir el diagrama DVk(S) a partir del DVk−1(S). Exercici 5 (El Diagrama de Voronoi del punt m´es lluny`a) 1. En la primera capa posa un conjunt de punts S, en posici´o general. 2. Crea una segona capa amb els punts etiquetats. 3. En una tercera capa activa, visualitza els punts i marca’ls per aplicar la ipelet de Voronoi diagram Furthest-point Voronoi diagram. Q¨uestions: 1. Comprova que el Furthest-point Voronoi diagram ´es el diagrama de Voronoi d’ordre n−1, on n´es el nombre total de punts del conjunt. Situat en una de les regions del diagrama i fes un cercle que contingui n−1 punts, observant quin ´es el punt de Sque ha quedat fora. Si canvies el centre de punt per`o no de regi´o, el punt de Sque queda fora sempre ´es el mateix: ´es el punt de Sque qualsevol punt de la regi´o t´e m´es lluny`a (punt que associarem a aquesta cara del diagrama). 2. Fes una llista amb els punts associats a cada cara del Furthest-point Voronoi diagram i comprova que s´on els de l’envolupant convexa del conjunt de punts S. 3. Suposa que els punts representen la localitzaci´o de supermercats en una ciutat. Ara volem buscar el millor lloc on col·locar un magatzem de suministrament per a tots ells, ´es a dir, trobar el centre d’un cercle amb radi m´ınim d’entre tots els cercles que recobreixin a tots els punts. On trobar el centre del cercle recobridor de radi m´ınim?