Nurbs Curve
courbe Nurbs à partir d'une polyligne
courbe Nurbs à partir d'un cercle
courbe Nurbs aléatoire à partir d'un cercle
Comment créer une courbe nurbs fermée dans Grasshopper ?
Le composant Nurbs Curve demande en entrée des Vertices autrement dit des points et plus précisément les points de contrôle de la courbe. Nous pourrions très bien décider de créer nos points manuellement avec le composant Construct Point mais vous imaginez le nombre presque absurde de Number Sliders pour controler les coordonnées x, y, z de chaque point...
Comment faire?
Une première approche s'inspire de la méthodologie de travail dans Rhino : s'appuyer ou s'accrocher sur une polyligne pour créer des points de contrôle.
Réalisons la courbe représentée sur l'image ci-dessous en bleu.
Création d'un carré de dimensions variables et centré sur le point 0. Le carré se trouve être par nature une polyligne. L'étoile à l'entrée Domain start indique la présence d'une expression ou une formule qui modifie la valeur d'entrée. L'expression utilisée est -x pour obtenir une valeur négative.
Grâce au composant Explode, le carré est décomposé en 4 segments à partir desquelles nous récupérons 3 points par segments grâce au composant Divide Curve. Les composants Shift Paths et Cull Duplicates permettent de supprimer les, doublons.
Résultat. 8 points de contrôle en entrée du composant Nurbs Curve. L'intérêt d'utiliser cette méthode est d'obtenir des points qui sont correctement orientés. Il est évidemment possible de créer un rectangle plutôt qu'un carré. À découvrir dans la vidéo ci-dessous (disponible prochainement).
Le sigle carré devant l'entrée "Periodic" indique que la valeur booléenne d'entrée est inversée pour basculer sur la valeur True. Cela permet de fermer la courbe.
...Vidéo...
Et si on utilisait un cercle au lieu d'une polyligne ?
Dans Rhino, il est possible de créer une forme fermée à partir d'un cercle déformable avec 8, 10 ou 12 points de contrôle. Cela permet d'obtenir des formes avec des points de contrôle disposés de façon homogène et maitrisé. Cette approche devient encore plus intéressante dans Grasshopper.
Réalisons la courbe représentée sur l'image ci-dessous en bleu.
Création d'un cercle de rayon variable centré sur le point 0.
Des vecteurs sont créés à partir de 2 points : entre le centre du cercle initial (composant Deconstruct Arc) et les points créés sur le cercle, 6 dans notre exemple, grâce au composant Divide Curve.
Les 6 points sont déplacés selon les vecteurs créés à l'étape précédente. Du centre vers l'extérieur du cercle en passant par chacun des points respectifs.
1 point de contrôle déplacé sur 2 est sélectioné grâce au composant Sift Pattern. Le Pattern de sélection est défini par le panel dans lequel les valeurs 0 et 1 sont écrites. Puis ces valeurs sont répétés selon la quantité de point créé sur le cercle initial. Ensuite ces points sont combinés avec les points qui n'ont pas été sélectionnés et qui n'ont, donc, pas bougés.
Résultat. 6 points de contrôle en entrée du composant Nurbs Curve. On obtient une courbe fermée avec des points de contrôle disposée uniformément.
...Vidéo...
Comment créer une courbe nurbs fermée de forme aléatoire ?
Dans des outils comme Grasshopper, sa force est le Generative Design. A savoir pouvoir générer plusieurs solutions possibles. En partant de la méthode précédente, nous allons générer des courbes Nurbs à la forme aléatoire.
Création d'un cercle de rayon variable centré sur le point 0.
Des vecteurs sont créés à partir de 2 points : entre le centre du cercle initial (composant Deconstruct Arc) et les points créés sur le cercle, 8 dans notre exemple, grâce au composant Divide Curve.
Une liste de nombres aléatoires est généré grâce au composant Random. Nombres qui donneront la force des vecteurs créés.
Les 8 points sont déplacés selon les vecteurs créés à l'étape précédente avec une force générée aléatoirement. Du centre vers l'extérieur du cercle en passant par chacun des points respectifs.
Résultat. 8 points de contrôle en entrée du composant Nurbs Curve pour générer des formes aléatoires.
...Vidéo...
Exercice.
Création de plusieurs courbes planes le long de l'axe Z, chacune ayant sa propre forme générée aléatoirement.
Retrouvez la solution dans la vidéo (disponible prochainement).