{"id":3174,"date":"2021-04-22T17:14:01","date_gmt":"2021-04-22T15:14:01","guid":{"rendered":"http:\/\/lamartinieredesign.fr\/?page_id=3174"},"modified":"2021-04-22T21:28:34","modified_gmt":"2021-04-22T19:28:34","slug":"gh-traitement-des-surfaces-voronoi-2d","status":"publish","type":"page","link":"https:\/\/lamartinieredesign.fr\/?page_id=3174","title":{"rendered":"GH-TRAITEMENT DES SURFACES (Vorono\u00ef 2D)"},"content":{"rendered":"\n<p>Le diagramme de Vorono\u00ef est un pavage du plan constitu\u00e9 de polygones juxtapos\u00e9s, \u00e0 l\u2019int\u00e9rieur desquels se trouve l\u2019un des points d\u2019origine.<br>Le diagramme de Vorono\u00ef est construit \u00e0 partir d\u2019une s\u00e9rie de points. Chaque point est reli\u00e9 aux deux points les plus proches pour constituer des triangles juxtapos\u00e9s par leurs sommets et\/ou leurs c\u00f4t\u00e9s. Les liaisons sont mat\u00e9rialis\u00e9es par des segments dont on construit ensuite les m\u00e9diatrices. Les intersections des m\u00e9diatrices sont marqu\u00e9es par des points (indiqu\u00e9s par une croix) qui seront reli\u00e9s entre eux par des segments (en rouge sur la figure ci-dessous) pour constituer le diagramme de Vorono\u00ef.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-47.png\"><img decoding=\"async\" loading=\"lazy\" width=\"591\" height=\"385\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-47.png\" alt=\"\" class=\"wp-image-3175\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-47.png 591w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-47-300x195.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/a><figcaption>Principe de g\u00e9n\u00e9ration d\u2019un diagramme de Vorono\u00ef \u00e0 partir d\u2019un ensemble de points<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Cr\u00e9ation d\u2019une surface gauche \u00e0 partir de deux courbes g\u00e9n\u00e9ratrices <\/h5>\n\n\n\n<p>d\u00e9couper une surface gauche verticale \u00e9paissie en structure ajour\u00e9e (selon le motif fourni par les cellules de Vorono\u00ef)<\/p>\n\n\n\n<p>Nous commen\u00e7ons cette d\u00e9monstration par la cr\u00e9ation d\u2019une surface gauche verticale qui sera consid\u00e9r\u00e9e comme une portion de paroi verticale \u00e0 traiter. La surface est g\u00e9n\u00e9r\u00e9e \u00e0 partir de deux courbes dessin\u00e9es sur le plan XY (pour une d\u00e9monstration compl\u00e8te du pr\u00e9sent exercice, les courbes doivent \u00eatre dessin\u00e9es \u00e0 proximit\u00e9 de l\u2019intersection des axes X, Y et Z, dans le premier cadran (X &gt; 0 et Y &gt; 0) et dans une direction voisine de l\u2019axe X). L\u2019une d\u2019elles sera d\u00e9plac\u00e9e dans la direction de l\u2019axe Z au-dessus du plan XY, l\u2019autre reste dans le plan XY.<br>L\u2019int\u00e9gration des deux courbes dans Grasshopper s\u2019effectue via le composant <em>Params&gt;Geometry&gt; <strong>Curve<\/strong><\/em> . Ce composant sera utilis\u00e9 \u00e0 deux reprises pour associer les deux courbes en suivant le m\u00eame processus que celui utilis\u00e9 pour la r\u00e9alisation de la tour param\u00e9trique.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-48.png\"><img decoding=\"async\" loading=\"lazy\" width=\"591\" height=\"339\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-48.png\" alt=\"\" class=\"wp-image-3176\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-48.png 591w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-48-300x172.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/a><figcaption>Cr\u00e9ation des deux courbes dans Rhinoceros et int\u00e9gration dans Grasshopper<\/figcaption><\/figure>\n\n\n\n<p>Nous utilisons le composant <em>Sets&gt;Tree&gt;<\/em><strong><em>Merge<\/em> <\/strong>pour rassembler les deux courbes et les connecter ensuite au composant <em>Surface&gt;Freeform&gt;<strong>Loft <\/strong><\/em>pour g\u00e9n\u00e9rer la surface \u00e0 traiter.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-49.png\"><img decoding=\"async\" loading=\"lazy\" width=\"592\" height=\"289\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-49.png\" alt=\"\" class=\"wp-image-3177\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-49.png 592w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-49-300x146.png 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/a><figcaption>Cr\u00e9ation d\u2019une surface \u00e0 partir des deux courbes g\u00e9n\u00e9ratrices<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">G\u00e9n\u00e9ration d\u2019un volume ferm\u00e9 \u00e0 partir de surfaces gauches<\/h5>\n\n\n\n<p>Afin de donner une \u00e9paisseur \u00e0 la surface d\u2019origine, nous utiliserons le composant <em>Surface>Util><\/em><strong><em>Offset Surface<\/em>. <\/strong>Ce dernier a besoin d\u2019un vecteur pour d\u00e9finir la direction et l\u2019amplitude du d\u00e9calage de la surface d\u2019origine. Pour notre cas, nous avons besoin d\u2019un composant<br><em>Vector>Vector><\/em><strong><em>Unit Y<\/em> <\/strong>connect\u00e9 \u00e0 un <em>Number Slider<\/em> pour fixer ce param\u00e8tre (entr\u00e9e <strong>D<\/strong>). La surface d\u2019origine (r\u00e9sultat du composant <em>Loft<\/em>) sera reli\u00e9e \u00e0 l\u2019entr\u00e9e <strong>S<\/strong> du composant <em>Offset Surface<\/em>.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-55.png\"><img decoding=\"async\" loading=\"lazy\" width=\"591\" height=\"276\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-55.png\" alt=\"\" class=\"wp-image-3200\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-55.png 591w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-55-300x140.png 300w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/a><figcaption>D\u00e9caler une surface gauche dans la direction de l\u2019axe Y<\/figcaption><\/figure>\n\n\n\n<p><strong>D\u00e9caler une surface<\/strong><br>Pour \u00e9paissir une surface, le composant <strong>Offset Surface<\/strong> fonctionne bien quand le vecteur plac\u00e9 \u00e0 son entr\u00e9e <strong>D<\/strong> reste majoritairement orthogonal au plan de la surface que l\u2019on duplique. Son fonctionnement<br>est inefficace sur une surface gauche qui pr\u00e9sente des parties presque en alignement avec le vecteur plac\u00e9 sur l\u2019entr\u00e9e <strong>D<\/strong> : \u00e0 cet endroit, l\u2019\u00e9paississement devient nul, voire n\u00e9gatif car la surface d\u00e9cal\u00e9e va se replier sur elle-m\u00eame.<br>Nous obtenons ainsi deux surfaces \u00ab voisines \u00bb, en regard l\u2019une de l\u2019autre, distantes de la valeur fix\u00e9e par le <em>Number Slider<\/em> correspondant.<br>La cr\u00e9ation de la surface s\u2019appuyant sur les bords des deux surfaces pr\u00e9c\u00e9dentes, en forme de ruban, nous offrira la possibilit\u00e9 de g\u00e9n\u00e9rer un volume ferm\u00e9 (<em>Closed Brep<\/em>), indispensable pour la suite des op\u00e9rations. Pour cr\u00e9er ce ruban, il faut isoler les contours de chacune des surfaces<br>gauches. Cette t\u00e2che sera possible gr\u00e2ce \u00e0 la combinaison de l\u2019outil <em>Surface>Analysis><strong>Deconstruct Brep<\/strong><\/em> pour isoler les contours et de l\u2019outil <em>Curve>Util><strong>Join Curves<\/strong><\/em> afin de les relier et de cr\u00e9er un seul contour ferm\u00e9 pour chacune des surfaces. Cette combinaison sera appliqu\u00e9e \u00e0<br>la surface gauche d\u2019origine ainsi qu\u2019\u00e0 la surface d\u00e9cal\u00e9e.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-56.png\"><img decoding=\"async\" loading=\"lazy\" width=\"996\" height=\"407\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-56.png\" alt=\"\" class=\"wp-image-3202\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-56.png 996w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-56-300x123.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-56-768x314.png 768w\" sizes=\"(max-width: 996px) 100vw, 996px\" \/><\/a><figcaption>Identification des bords des deux surfaces<\/figcaption><\/figure>\n\n\n\n<p>La cr\u00e9ation du ruban sera r\u00e9alis\u00e9e par le composant <em>Surface>Freeform><strong>Ruled Surface<\/strong><\/em> en reliant les sorties des deux composants <em>Join Curves<\/em>. Nous rassemblons les trois surfaces via le composant <em>Sets>Tree><strong>Merge<\/strong><\/em>. La sortie de ce composant sera connect\u00e9e au composant <em>Surface> Util><strong>Brep Join<\/strong><\/em> pour g\u00e9n\u00e9rer un volume ferm\u00e9 (<em>Closed Brep<\/em>).<br>Cependant, cette op\u00e9ration n\u2019est pas imm\u00e9diate car, telle quelle, la sortie du composant <em>Merge<\/em> se pr\u00e9sente sous la forme d\u2019un arbre contenant deux branches : la premi\u00e8re, identifi\u00e9e {i}, contient la surface d\u2019origine et son offset, et la seconde, identifi\u00e9e {0 ;0 ;i}, contient le ruban.<br>On va donc intercaler un composant <em>Sets>Tree><strong>Flatten Tree<\/strong><\/em> pour transformer l\u2019arbre en liste.<br>Ainsi, le composant <em>Brep Join<\/em> fournit bien, \u00e0 sa sortie, un volume ferm\u00e9 <em>closed brep<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-57.png\"><img decoding=\"async\" loading=\"lazy\" width=\"774\" height=\"292\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-57.png\" alt=\"\" class=\"wp-image-3205\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-57.png 774w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-57-300x113.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-57-768x290.png 768w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><\/a><figcaption>Cr\u00e9ation d\u2019une enveloppe ferm\u00e9e \u00e0 partir de deux surfaces<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Cr\u00e9ation de cellules Vorono\u00ef 3D<\/h5>\n\n\n\n<p>Nous commen\u00e7ons cette \u00e9tape par la cr\u00e9ation d\u2019une \u00ab bo\u00eete englobante \u00bb, qui est math\u00e9matiquement un parall\u00e9l\u00e9pip\u00e8de. Son type de donn\u00e9e est box et elle pr\u00e9sente la particularit\u00e9 d\u2019entourer au plus juste l\u2019objet g\u00e9om\u00e9trique plac\u00e9 \u00e0 son entr\u00e9e. Nous allons y cr\u00e9er des cellules<br>de Vorono\u00ef en 3D.<br>Le composant <em>Surface>Primitive><strong>Bouding Box<\/strong><\/em> offre la possibilit\u00e9 de g\u00e9n\u00e9rer la bo\u00eete englobante de la g\u00e9om\u00e9trie plac\u00e9e sur son entr\u00e9e C. Ce parall\u00e9l\u00e9pip\u00e8de sera redimensionn\u00e9 avec un facteur d\u2019\u00e9chelle de 1.3 sur les trois axes en exploitant le composant <em>Transform>Affine><strong>Scale<\/strong><\/em> <strong>NU<\/strong>. <br>Le centre de la mise \u00e0 l\u2019\u00e9chelle est d\u00e9fini par le composant <em>Surface>Analysis><strong>Volume<\/strong><\/em> connect\u00e9 \u00e0 la sortie <strong>B<\/strong> du composant <em>Bounding Box.<\/em><br>Les cellules de Vorono\u00ef en 3D sont cr\u00e9\u00e9es \u00e0 partir de points plac\u00e9s de mani\u00e8re al\u00e9atoire sur l\u2019une des surfaces gauches. Le composant <em>Vector>Grid><strong>Populate 3D<\/strong><\/em> a besoin d\u2019une bo\u00eete ferm\u00e9e pour g\u00e9n\u00e9rer une population de points. Son entr\u00e9e <strong>R<\/strong> sera connect\u00e9e \u00e0 la sortie <strong>B<\/strong><br>(pour box) du composant <em>Bounding Box<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-58.png\"><img decoding=\"async\" loading=\"lazy\" width=\"996\" height=\"444\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-58.png\" alt=\"\" class=\"wp-image-3209\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-58.png 996w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-58-300x134.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-58-768x342.png 768w\" sizes=\"(max-width: 996px) 100vw, 996px\" \/><\/a><figcaption>Identification des bords des deux surfaces<\/figcaption><\/figure>\n\n\n\n<p>Le composant<em> Populate 3D<\/em> a besoin de deux param\u00e8tres :<br>\u2022 un premier <em>Number Slider<\/em> de type entier variant entre 1 et 100 pour l\u2019entr\u00e9e N, d\u00e9finissant ainsi le nombre de points \u00e0 cr\u00e9er ;<br>\u2022 un second <em>Number Slider<\/em> de type entier variant entre 1 et 1 000 pour d\u00e9finir le mode de traitement al\u00e9atoire de la r\u00e9partition des points.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-59.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-59.png\" alt=\"\" class=\"wp-image-3211\" width=\"775\" height=\"309\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-59.png 775w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-59-300x120.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-59-768x306.png 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/a><figcaption>Cr\u00e9ation d\u2019un nuage de points 3D<\/figcaption><\/figure>\n\n\n\n<p>Les points g\u00e9n\u00e9r\u00e9s par ce composant sont ensuite tri\u00e9s pour s\u00e9lectionner uniquement les points en contact avec cette surface (ce qui n\u2019est pas le cas de l\u2019ensemble des points g\u00e9n\u00e9r\u00e9s par le composant Populate 3D). La s\u00e9lection de ces points sera assur\u00e9e par le composant <em>Surface>Analysis><strong>Brep Closes Point<\/strong><\/em> dont l\u2019entr\u00e9e <strong>P<\/strong> sera reli\u00e9e \u00e0 la sortie <strong>P<\/strong> du composant <em>Populate 3D<\/em> et l\u2019entr\u00e9e <strong>B <\/strong>sera connect\u00e9e la sortie<strong> L<\/strong> du composant <em>Loft.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-60.png\"><img decoding=\"async\" loading=\"lazy\" width=\"775\" height=\"327\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-60.png\" alt=\"\" class=\"wp-image-3213\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-60.png 775w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-60-300x127.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-60-768x324.png 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/a><figcaption>S\u00e9lection des points \u00e0 proximit\u00e9 de la surface gauche<\/figcaption><\/figure>\n\n\n\n<p>Les points g\u00e9n\u00e9r\u00e9s sont connect\u00e9s au composant <em>Mesh>Triangulation><strong>Vorono\u00ef 3D<\/strong><\/em>, cr\u00e9ant ainsi les cellules de Vorono\u00ef en 3D d\u00e9limit\u00e9es par le volume englobant d\u00e9fini par le composant<br><em>Bounding Box<\/em> et mis \u00e0 l\u2019\u00e9chelle par <em>Scale NU<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-61.png\"><img decoding=\"async\" loading=\"lazy\" width=\"774\" height=\"333\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-61.png\" alt=\"\" class=\"wp-image-3215\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-61.png 774w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-61-300x129.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-61-768x330.png 768w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><\/a><figcaption>Cr\u00e9ation des cellules de Vorono\u00ef en 3D<\/figcaption><\/figure>\n\n\n\n<p>Nous utilisons le composant <em>Transform>Affine><strong>Scale<\/strong> <\/em>pour r\u00e9duire la taille des cellules de Vorono\u00ef en 3D et cr\u00e9er un d\u00e9calage entre elles que nous allons exploiter par la suite. La mise \u00e0 l\u2019\u00e9chelle se fera en utilisant les barycentres des cellules 3D identifi\u00e9s \u00e0 l\u2019aide du composant<br><em>Surface>Analysis><\/em><strong><em>Volume<\/em>. <\/strong>Un <em>Number Slider<\/em> de type r\u00e9el, variant entre 0 et 1, sera utilis\u00e9 pour d\u00e9finir le facteur d\u2019\u00e9chelle (nous testons avec la valeur 0.85)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-62.png\"><img decoding=\"async\" loading=\"lazy\" width=\"592\" height=\"368\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-62.png\" alt=\"\" class=\"wp-image-3217\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-62.png 592w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-62-300x186.png 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/a><figcaption>Redimensionnement des cellules de Vorono\u00ef en 3D<\/figcaption><\/figure>\n\n\n\n<p>Le composant <em>Intersect>Shape><strong>Solid Difference<\/strong><\/em> permet de cr\u00e9er une op\u00e9ration bool\u00e9enne de soustraction de mati\u00e8re entre le premier volume (surface gauche avec \u00e9paisseur) et les diff\u00e9rentes cellules mises \u00e0 l\u2019\u00e9chelle. Ce composant ne fonctionne qu\u2019avec des volumes ferm\u00e9s (closed breps) sur ses deux entr\u00e9es <strong>A<\/strong> (solide \u00e0 d\u00e9couper) et <strong>B<\/strong> (solide d\u00e9coupant). Dans sa mod\u00e9lisation param\u00e9trique, le concepteur doit donc penser \u00e0 aboutir forc\u00e9ment sur des volumes ferm\u00e9s dans sa<br>cha\u00eene param\u00e9trique d\u00e8s qu\u2019il sait qu\u2019il aura \u00e0 utiliser au final le composant <em>Solid Difference<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-63.png\"><img decoding=\"async\" loading=\"lazy\" width=\"774\" height=\"431\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-63.png\" alt=\"\" class=\"wp-image-3218\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-63.png 774w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-63-300x167.png 300w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-63-768x428.png 768w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><\/a><figcaption>Cr\u00e9ation du maillage tridimensionnel \u00e0 base de cellules de Vorono\u00ef en 3D<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-64.png\"><img decoding=\"async\" loading=\"lazy\" width=\"382\" height=\"220\" src=\"http:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-64.png\" alt=\"\" class=\"wp-image-3219\" srcset=\"https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-64.png 382w, https:\/\/lamartinieredesign.fr\/wp-content\/uploads\/2021\/04\/image-64-300x173.png 300w\" sizes=\"(max-width: 382px) 100vw, 382px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Utilisation du composant Scale NU<\/strong><br>Ce composant permet de mettre \u00e0 l\u2019\u00e9chelle un objet dans les trois directions (X,Y et Z). La valeur d\u2019\u00e9chelle dans chacune des directions est d\u00e9finie par un composant <em>Number Slider<\/em>. Cette op\u00e9ration de transformation nous permet de cr\u00e9er des cellules de Vorono\u00ef en 3D dont les limites d\u00e9passent celles de la surface gauche initiale \u00e9paissie. Cette fonction permet de garantir une intersection parfaite entre les cellules<br>de Vorono\u00ef en 3D et le volume gauche (pas de chevauchement de surfaces ou de volumes qui peuvent g\u00e9n\u00e9rer des bavures au moment de l\u2019intersection).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le diagramme de Vorono\u00ef est un pavage du plan constitu\u00e9 de polygones juxtapos\u00e9s, \u00e0 l\u2019int\u00e9rieur desquels se trouve l\u2019un des points d\u2019origine.Le diagramme de Vorono\u00ef est construit \u00e0 partir d\u2019une s\u00e9rie de points. Chaque point est reli\u00e9 aux deux points les plus proches pour constituer des triangles juxtapos\u00e9s par leurs sommets et\/ou leurs c\u00f4t\u00e9s. Les &hellip; <a href=\"https:\/\/lamartinieredesign.fr\/?page_id=3174\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">GH-TRAITEMENT DES SURFACES (Vorono\u00ef 2D)<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":20,"featured_media":0,"parent":2793,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"_links":{"self":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/3174"}],"collection":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3174"}],"version-history":[{"count":25,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/3174\/revisions"}],"predecessor-version":[{"id":3220,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/3174\/revisions\/3220"}],"up":[{"embeddable":true,"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=\/wp\/v2\/pages\/2793"}],"wp:attachment":[{"href":"https:\/\/lamartinieredesign.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}