Representació per fronteres

 

Geometria i topologia

Relacions topològiques del model BRep de Laboratori

Algorisme de creació d'un objecte BRep

Algorisme genèric d'escombrat (sweep)

Aproximació polièdrica d'una esfera

 

Aproximació polièdrica d'una esfera

    En aquest apartat es dona una solució de com generar un objecte en representació per fronteres que modelitzi (aproximi) una esfera.

    Una primera aproximació consistiria en subdividir la esfera en pararal·lels i meridians com un globus terraqui, però un greu problema és que als pols conflueixen massa arestes i que és una representació dolenta pels algorismes de modelatge existents.

    Pel que s'opta per obtindre un icosaedre de 20 cares triangulars que posteriorment anirem refinant. L'algorisme inicial a seguir és el següent:

codi33.gif (2054 bytes)

    Icosaedre

    L'icosaedre s'obté generant primer els vèrtexs que indica la figura:

vicosaedre.gif (4419 bytes)

        Les coordenades dels vèrtexs s'obtenen mitjançant les següents fòrmules:

ficosaedre.gif (1936 bytes)

    on 63.43 és l'angle que forma el meridià on possem els vèrtexs amb l'eix y (es demostra que els triangles que surten són equilàters, i altre no ho fa) i 72 és el gir que s'ha d'anar fent respecte l'eix y per generar els punts del pentàgon (360 / 5 = 72). Els vmink.gif (79 bytes)són els vèrtexs del pentàgon d'adalt i els vi.gif (74 bytes) són els del d'abaix. El resultat final és el següent:

icosaedre.gif (2377 bytes)

    Les 20 cares es generen amb aquestes combinacions dels índexs:

    (1,2,3)             (2,10,3)             (10,11,3)             (11,10,12)

    (1,3,4)             (3,11,4)             (11,7,4)               (7,11,12)

    (1,4,5)             (4,7,5)               (7,8,5)                 (8,7,12)

    (1,5,6)             (5,8,6)               (8,9,6)                 (9,8,12)

    (1,6,2)             (6,9,2)               (9,10,2)               (10,9,12)

    Refinament

    L'algorisme consisteix en subdividir cada cara triangular en quatre cares com ho representa la figura. Succesives aplicacions d'aquest algorisme aproximaran millor l'esfera.

icosaedrecara.gif (1406 bytes)

    Bàsicament el que es farà serà calcular el punt mig de cada aresta i generar les "sub-cares". S'ha de tenir en compte que estem aproximant una esfera, i que, per tant, haurem de "pujar" aquest punt mig per a que sigui tangent a l'esfera que aproxima. Això es fa desplaçant aquest punt mig per la direcció perpendicular a aquesta aresta (partint de l'origen de l'esfera cap a aquest punt mig):

icosaedreref.gif (2056 bytes)

    L'algorisme de refinament és el següent:

codiicosaedre.gif (5013 bytes)

    La fotografia d'abaix correspon a la cúpula del Museu Dalí de Figueres. En la fotografia s'aprecien punts negres que indiquen els punts inicials del poliedre: aquells que pertanyen a 5 cares (tots els demés pertanyen a 6):

cupula.jpg (57553 bytes)