Programmes en Pascal (Pascal) : flocon de neige et courbe de Koch, fractales. Découvrez ce qu'est la « courbe de Koch » dans d'autres dictionnaires Objets ayant des propriétés fractales dans la nature

Le flocon de neige fractal, l'un des objets géométriques les plus célèbres et les plus mystérieux, a été décrit par Helga von Koch au début de notre siècle. Selon la tradition, dans notre littérature, on l’appelle le flocon de neige de Koch. Il s’agit d’une figure géométrique très « hérissée », qui peut être métaphoriquement considérée comme le résultat de la « multiplication » répétée de l’étoile de David par elle-même. Ses six rayons principaux sont recouverts d’un nombre infini de sommets « aiguilles » grands et petits. Chaque fragment microscopique du contour d’un flocon de neige est comme deux pois dans une cosse, et le grand faisceau, à son tour, contient un nombre infini des mêmes fragments microscopiques.

Lors d'un colloque international sur la méthodologie de la modélisation mathématique à Varna en 1994, je suis tombé sur les travaux d'auteurs bulgares qui décrivaient leur expérience de l'utilisation des flocons de neige de Koch et d'autres objets similaires dans les cours du lycée pour illustrer le problème de la divisibilité de l'espace et les apories philosophiques de Zénon. De plus, d'un point de vue pédagogique, à mon avis, le principe même de construction de structures géométriques fractales régulières est très intéressant - le principe de multiplication récursive de l'élément de base. Ce n’est pas pour rien que la nature « aime » les formes fractales. Cela s'explique précisément par le fait qu'ils sont obtenus par simple reproduction et modification de la taille d'un certain élément de base. Comme vous le savez, la nature ne déborde pas de raisons diverses et, lorsque cela est possible, se contente des solutions algorithmiques les plus simples. Regardez attentivement les contours des feuilles et, dans de nombreux cas, vous découvrirez une relation claire avec la forme du contour d'un flocon de neige de Koch.

La visualisation des structures géométriques fractales n'est possible qu'à l'aide d'un ordinateur. Il est déjà très difficile de construire manuellement un flocon de neige de Koch au-dessus du troisième ordre, mais il faut vraiment regarder vers l'infini ! Alors pourquoi ne pas essayer de développer un programme informatique approprié. Dans RuNet, vous pouvez trouver des recommandations pour construire un flocon de neige de Koch à partir de triangles. Le résultat de cet algorithme ressemble à un fouillis de lignes qui se croisent. Il est plus intéressant de combiner cette figure à partir de « morceaux ». Le contour d'un flocon de neige de Koch se compose de segments de même longueur inclinés à 0°, 60° et 120° par rapport à l'axe horizontal des x. Si on les note respectivement 1, 2 et 3, alors un flocon de neige de n'importe quel ordre sera constitué de triplets successifs - 1, 2, 3, 1, 2, 3, 1, 2, 3... etc. Chacun de ces trois types des segments peuvent être rattachés au précédent à l'une ou l'autre extrémité. Compte tenu de cette circonstance, nous pouvons supposer que le contour d'un flocon de neige est constitué de segments de six types. Notons-les 0, 1, 2, 3, 4, 5. Ainsi, nous avons la possibilité de coder un contour de n'importe quel ordre à l'aide de 6 chiffres (voir figure).

Un flocon de neige d'ordre supérieur est obtenu à partir d'un prédécesseur d'ordre inférieur en remplaçant chaque bord par quatre, reliés comme des paumes pliées (_/\_). Le type d'arête 0 est remplacé par quatre arêtes 0, 5, 1, 0 et ainsi de suite selon le tableau :

0 0 1 5 0
1 1 2 0 1
2 2 3 1 2
3 3 4 2 3
4 4 5 3 4
5 5 0 4 5

Un simple triangle équilatéral peut être considéré comme un flocon de neige de Koch d’ordre zéro. Dans le système de codage décrit, cela correspond à l'entrée 0, 4, 2. Tout le reste peut être obtenu par les remplacements décrits. Je ne fournirai pas ici le code de la procédure et vous priverai ainsi du plaisir de développer votre propre programme. Lors de son écriture, il n'est pas du tout nécessaire d'utiliser un appel récursif explicite. Il peut être remplacé par un cycle régulier. En cours de travail, vous aurez une autre raison de réfléchir à la récursivité et à son rôle dans la formation des formes quasi fractales du monde qui nous entoure, et au bout du chemin (si, bien sûr, vous n'êtes pas trop paresseux pour le parcourir jusqu'au bout), vous pourrez admirer le motif complexe des contours d'un flocon de neige fractal, et aussi regarder enfin face à l'infini.

    La forme géométrique du flocon de neige de Koch ressemble à ceci

    Comment dessiner un flocon de neige Koch

    Et il y a aussi la pyramide de Koch

    Vous pouvez découvrir plus en détail comment dessiner un flocon de neige Koch dans la vidéo ci-dessous. Quelqu'un comprendra peut-être, j'ai abandonné.

    Tout d’abord, regardons ce flocon de neige de Koch. Le diagramme ci-dessous nous le montrera le mieux.

    Autrement dit, pour dessiner un flocon de neige donné, vous devez utiliser des formes géométriques individuelles qui composent cette fractale géométrique.

    La base de notre dessin est un triangle équilatéral. Chaque côté est divisé en trois segments, à partir desquels sont construits les triangles équilatéraux suivants, plus petits. La même opération est effectuée plusieurs fois avec les triangles résultants.

    Le flocon de neige de Koch est l'une des premières fractales étudiées par les scientifiques. Un flocon de neige est obtenu à partir de trois copies de la courbe de Koch, des informations sur cette découverte sont apparues en 1904 dans un article du mathématicien suédois Helge von Koch. Essentiellement, une courbe a été inventée comme exemple de ligne continue à laquelle une ligne tangente ne peut être tracée en aucun point. La courbe de Koch est simple dans sa conception.

    Un exemple, un dessin photo d'une image d'un flocon de neige Koch avec un dessin étape par étape.

    Dans ce diagramme, vous pouvez examiner en détail les lignes qui formeront plus tard un flocon de neige de Koch.

    Et ceci est une interprétation d’un nouveau flocon de neige basé sur le flocon de neige de Koch.

    Avant de comprendre comment dessiner un flocon de neige Koch, nous devons déterminer de quoi il s’agit réellement.

    Ainsi, un flocon de neige de Koch est une image géométrique - une fractale.

    La définition complète du flocon de neige de Koch est donnée dans l'image ci-dessous.

Cette figure est l'une des premières fractales étudiées par les scientifiques. Elle est dérivée de trois copies de la courbe de Koch, apparue pour la première fois dans un article du mathématicien suédois Helge von Koch en 1904. Cette courbe a été inventée comme exemple de ligne continue qui ne peut être tangente à aucun point. Les lignes présentant cette propriété étaient connues auparavant (Karl Weierstrass a construit son exemplaire en 1872), mais la courbe de Koch se distingue par la simplicité de sa conception. Ce n’est pas un hasard si son article s’intitule « Sur une courbe continue sans tangentes, issue de la géométrie élémentaire ».

Comment construire la courbe de Koch étape par étape.

La première itération est simplement le segment initial. Ensuite il est divisé en trois parties égales, celle du centre est complétée pour former un triangle régulier puis jetée. Le résultat est la deuxième itération : une ligne brisée composée de quatre segments. La même opération est appliquée à chacun d'eux, et la quatrième étape de construction est obtenue. En continuant dans le même esprit, vous pouvez obtenir de plus en plus de nouvelles lignes (elles seront toutes des lignes brisées). Et ce qui se passe à la limite (ce sera déjà un objet imaginaire) s'appelle la courbe de Koch.

Propriétés de base de la courbe de Koch

1.À PROPOSest continue, mais nulle part différenciable. En gros, c'est exactement pour cela qu'il a été inventé - comme exemple de ce genre de « monstres » mathématiques.

2. A une longueur infinie. Soit la longueur du segment d'origine égale à 1. A chaque étape de construction, on remplace chacun des segments qui composent la ligne par une ligne brisée, qui 4/3 fois plus longtemps. Cela signifie que la longueur de toute la ligne brisée à chaque étape est multipliée par 4/3 : la longueur de la ligne numéro n est (4/3)n–1. Par conséquent, la ligne limite n’a d’autre choix que d’être infiniment longue.

3.Le flocon de neige de Koch limite la zone finie. Et ce malgré le fait que son périmètre soit infini. Cette propriété peut paraître paradoxale, mais elle est évidente : un flocon de neige s'inscrit complètement dans un cercle, sa superficie est donc évidemment limitée. L'aire peut être calculée et vous n'avez même pas besoin de connaissances particulières pour cela - les formules pour l'aire d'un triangle et la somme d'une progression géométrique sont enseignées à l'école. Pour ceux que cela intéresse, le calcul est indiqué ci-dessous en petits caractères.

Soit le côté du triangle régulier d'origine égal à a. Puis sa superficie. Tout d’abord, le côté est 1 et l’aire est : . Que se passe-t-il lorsque l'itération augmente ? On peut supposer que des petits triangles équilatéraux sont attachés à un polygone existant. La première fois, il n'y en a que 3, et à chaque fois suivante, il y en a 4 fois plus que la précédente. Autrement dit, à la nième étape, il sera terminé Tn = 3 4n–1 Triangles. La longueur du côté de chacun d’eux est égale au tiers du côté du triangle réalisé à l’étape précédente. Cela signifie qu’il est égal à (1/3)n. Les aires sont proportionnelles aux carrés des côtés, donc l'aire de chaque triangle est . Pour les grandes valeurs de n, c'est d'ailleurs très petit. La contribution totale de ces triangles à l'aire du flocon de neige est TnSn = 3/4 (4/9)n S0. Par conséquent, après la nième étape, l'aire de la figure sera égale à la somme S0 + T1 S1 + T2 S2 + ... +Tn Sn = . Un flocon de neige s'obtient après un nombre infini d'étapes, ce qui correspond à n → ∞. Le résultat est une somme infinie, mais c'est la somme d'une progression géométrique décroissante ; il existe une formule pour cela : . L'aire du flocon de neige est de .


Options pour construire le flocon de neige de Koch

Le flocon de neige de Koch « au contraire » est obtenu si l'on construit des courbes de Koch à l'intérieur du triangle équilatéral d'origine.

Lignes César. Au lieu de triangles équilatéraux, on utilise des triangles isocèles avec un angle de base compris entre 60° et 90°. Sur la figure, l'angle est de 88°.


Option carrée. Ici, les carrés sont terminés.

Cette figure est l'une des premières fractales étudiées par les scientifiques. Il provient de trois exemplaires Courbe de Koch, apparu pour la première fois dans un article du mathématicien suédois Helge von Koch en 1904. Cette courbe a été inventée comme exemple de ligne continue qui ne peut être tangente à aucun point. Les lignes présentant cette propriété étaient connues auparavant (Karl Weierstrass a construit son exemplaire en 1872), mais la courbe de Koch se distingue par la simplicité de sa conception. Ce n’est pas un hasard si son article s’intitule « Sur une courbe continue sans tangentes, issue de la géométrie élémentaire ».

Écrire une fonction qui s'appelle de manière récursive est une façon de générer un diagramme fractal à l'écran. Cependant, que se passe-t-il si vous souhaitez que les lignes du Cantor ci-dessus soient définies comme des objets distincts pouvant être déplacés indépendamment ? La fonction récursive est simple et élégante, mais elle ne vous permet pas de faire grand-chose au-delà de la simple création du modèle lui-même.

Voici les règles. La courbe de Koch et d'autres modèles fractals sont souvent appelés « monstres mathématiques ». Cela est dû à l’étrange paradoxe qui survient lorsque vous appliquez la définition récursive une infinité de fois. Si la longueur de la ligne de départ originale est de un, la première itération de la courbe de Koch donnera une longueur de ligne de quatre tiers. Recommencez et vous obtenez seize-neuf. Lorsque vous parcourez l'infini, la longueur de la courbe de Koch se rapproche de l'infini. Cependant, cela s’inscrit dans le petit espace fini fourni ici même sur ce document !

Les premières étapes de la construction de la courbe de Koch

Le dessin et l'animation montrent parfaitement comment la courbe de Koch est construite étape par étape. La première itération est simplement le segment initial. Ensuite il est divisé en trois parties égales, celle du centre est complétée pour former un triangle régulier puis jetée. Le résultat est la deuxième itération : une ligne brisée composée de quatre segments. La même opération est appliquée à chacun d'eux, et la quatrième étape de construction est obtenue. En continuant dans le même esprit, vous pouvez obtenir de plus en plus de nouvelles lignes (elles seront toutes des lignes brisées). Et ce qui se passe à la limite (ce sera déjà un objet imaginaire) s'appelle la courbe de Koch.

Puisque nous travaillons sur la Terre du traitement fini des pixels, ce paradoxe théorique ne sera pas un facteur pour nous. Nous pourrions procéder de la même manière qu'avec l'ensemble de Cantor et écrire une fonction récursive qui applique de manière itérative les règles de Koch, encore et encore. Cependant, nous résoudrons ce problème différemment en traitant chaque segment de la courbe de Koch comme un objet distinct. Cela ouvrira certaines possibilités de conception. Par exemple, si chaque segment est un objet, nous pouvons permettre à chaque segment de se déplacer indépendamment de son emplacement d'origine et de participer à la simulation physique.

Propriétés de base de la courbe de Koch

1. Il est continu, mais nulle part différenciable. En gros, c'est exactement pour cela qu'il a été inventé - comme exemple de ce genre de « monstres » mathématiques.

2. A une longueur infinie. Soit la longueur du segment d'origine égale à 1. A chaque étape de construction, on remplace chacun des segments qui composent la ligne par une ligne brisée, qui est 4/3 fois plus longue. Cela signifie que la longueur de toute la ligne brisée est multipliée par 4/3 à chaque pas : la longueur de la ligne avec le numéro n est égal à (4/3) n–1 . Par conséquent, la ligne limite n’a d’autre choix que d’être infiniment longue.

De plus, nous pourrions utiliser une couleur aléatoire, une épaisseur de trait, etc. Pour afficher chaque segment différemment. Pour accomplir notre tâche consistant à traiter chaque segment comme un objet distinct, nous devons d’abord décider ce que l’objet doit faire. Quelles fonctionnalités doit-il avoir ?

Regardons ce que nous avons. Avec les éléments ci-dessus, comment et où appliquer les règles et principes de récursivité de Koch ? Dans cette simulation, nous avons toujours suivi deux générations : celle actuelle et la suivante. Lorsque nous avons fini de calculer la génération suivante, cela est devenu pertinent et nous sommes passés au calcul de la nouvelle génération suivante.

3. Le flocon de neige de Koch limite la zone finie. Et ce malgré le fait que son périmètre soit infini. Cette propriété peut paraître paradoxale, mais elle est évidente : un flocon de neige s'inscrit complètement dans un cercle, sa superficie est donc évidemment limitée. L'aire peut être calculée et vous n'avez même pas besoin de connaissances particulières pour cela - les formules pour l'aire d'un triangle et la somme d'une progression géométrique sont enseignées à l'école. Pour ceux que cela intéresse, le calcul est indiqué ci-dessous en petits caractères.

Nous utiliserons ici une technique similaire. Voici à quoi ressemble le code. Bien entendu, ce qui précède exclut le « travail » réel qui définit ces règles. Comment diviser un segment de ligne en quatre comme décrit par les règles ? La construction d'une fractale repose sur la notion d'infini. Étape 2 : Nous allons diviser ce segment en trois parties égales et élever un triangle équilatéral sur la partie centrale. Étape 3 : Sur les quatre nouveaux segments, nous effectuerons l'étape.

Intersectez l'outil entre les deux objets, cliquez sur le cercle. Le flocon de neige de Koch est une courbe fractale spéciale construite par le mathématicien de Koch, en commençant par la dentelle de Koch. Il s'agit d'une courbe tracée le long des côtés d'un triangle équilatéral. Des lacets Koch sont construits de chaque côté du triangle.

Soit le côté du triangle régulier d'origine égal à un. Puis sa superficie. Tout d’abord, le côté est 1 et l’aire est : . Que se passe-t-il lorsque l'itération augmente ? On peut supposer que des petits triangles équilatéraux sont attachés à un polygone existant. La première fois, il n'y en a que 3, et à chaque fois suivante, il y en a 4 fois plus que la précédente. C'est-à-dire sur nÀ la ème étape, T n = 3 · 4 n–1 triangles seront complétés. La longueur du côté de chacun d’eux est égale au tiers du côté du triangle réalisé à l’étape précédente. Cela signifie qu'il est égal à (1/3) n. Les aires sont proportionnelles aux carrés des côtés, donc l'aire de chaque triangle est . Pour les grandes valeurs n D’ailleurs, c’est très peu. La contribution totale de ces triangles à l'aire du flocon de neige est T n · S n = 3/4 · (4/9) n · S 0 . Donc après nème étape, l'aire de la figure sera égale à la somme S 0 + T 1 · S 1 + T 2 · S 2 + ... +T n · S n = . Un flocon de neige est obtenu après un nombre infini d'étapes, ce qui correspond à n → ∞. Le résultat est une somme infinie, mais c'est la somme d'une progression géométrique décroissante ; il existe une formule pour cela : . La superficie du flocon de neige est égale.

Le tableau suivant montre les premières étapes de construction d'une courbe. Pour créer une fractale, il vous suffit d'insérer trois copies de la courbe le long des côtés du triangle. Notez que le deuxième chiffre est l’étoile de David. Le résultat final est une courbe fermée construite sur un triangle équilatéral. On peut noter que la fritte contient une étoile à six branches. Le design est très similaire à un design fractal pentagonal.

Il existe une autre façon de construire des flocons de neige. La construction décrite ci-dessus peut être définie comme une construction par addition, puisque la figure de départ, le triangle, ajoute d'autres éléments. Il existe une sous-structure qui supprime des éléments au lieu de la forme originale.

4. La dimension fractale est log4/log3 = log 3 4 ≈ 1,261859... . Un calcul précis nécessitera des efforts considérables et des explications détaillées, voici donc plutôt une illustration de la définition de la dimension fractale. À partir de la formule de la loi de puissance N(δ) ~ (1/δ)D, où N- nombre de carrés qui se croisent, δ - leur taille, D- dimension, on obtient que D = log 1/δ N. Cette égalité est vraie jusqu'à l'ajout d'une constante (la même pour tous δ ). Les figures montrent la cinquième itération de construction de la courbe de Koch ; les carrés de la grille qui la croisent sont ombrés en vert. La longueur du segment d'origine est de 1, donc dans la figure de gauche, la longueur des côtés des carrés est de 1/9. 12 carrés sont ombrés, log 9 12 ≈ 1,130929... . Pas encore très similaire à 1.261859... . Regardons plus loin. Dans l'image du milieu, les carrés font la moitié de leur taille, leur taille est de 1/18, ombrés 30. log 18 30 ≈ 1,176733... . Déjà mieux. A droite, les carrés sont encore deux fois moins grands, 72 pièces ont déjà été repeintes. journal 72 30 ≈ 1,193426... . Plus proche encore. Ensuite, vous devez augmenter le nombre d'itérations et en même temps diminuer les carrés, alors la valeur "empirique" de la dimension de la courbe de Koch se rapprochera régulièrement de log 3 4, et à la limite elle coïncidera complètement.

Possibilités

Le flocon de neige de Koch "à l'envers" obtenu si nous construisons des courbes de Koch à l’intérieur du triangle équilatéral d’origine.

Lignes Césaro. Au lieu de triangles équilatéraux, on utilise des triangles isocèles avec un angle de base compris entre 60° et 90°. Sur la figure, l'angle est de 88°.

Option carrée. Ici, les carrés sont terminés.

Analogues tridimensionnels. Espace Koch.

L'hiver à Boston a été exceptionnellement chaud, mais nous attendions toujours les premières chutes de neige. En regardant la neige tomber par la fenêtre, j'ai pensé aux flocons de neige et au fait que leur structure n'est pas du tout facile à décrire mathématiquement. Il existe cependant un type particulier de flocon de neige, connu sous le nom de flocon de neige de Koch, qui peut être décrit de manière relativement simple. Aujourd'hui, nous allons voir comment sa forme peut être construite à l'aide du générateur d'applications multiphysiques COMSOL.

La fabrication du flocon de neige de Koch

Comme nous l'avons déjà mentionné sur notre blog, les fractales peuvent être utilisées dans . Koch flocon de neige est une fractale, qui se distingue par le fait qu'il existe un processus itératif très simple pour la construire :

  1. Commençons par un triangle équilatéral, qui est en fait la zéroième itération du flocon de neige de Koch.
  2. Trouvons le point central de chaque bord du flocon de neige actuel.
  3. Au centre de chaque bord, ajoutez un triangle équilatéral dépassant vers l'extérieur avec un côté égal à 1/3 de la longueur du bord actuel.
  4. Définissons la prochaine itération du flocon de neige de Koch comme étant à l'extérieur du flocon de neige précédent et de tous les triangles ajoutés.
  5. Répétez les étapes 2 à 4 autant de fois que nécessaire.

Cette procédure est illustrée dans la figure ci-dessous pour les quatre premières itérations de dessin d'un flocon de neige.

Les quatre premières itérations du flocon de neige de Koch. Image de Wxs - Travail personnel. Sous licence CC BY-SA 3.0, via Wikimedia Commons.

Construction de la géométrie du flocon de neige de Koch

Puisque nous savons maintenant quel algorithme utiliser, voyons comment créer une telle structure à l'aide du COMSOL Multiphysics Application Builder. Nous allons ouvrir un nouveau fichier et créer un objet 2D partie géométrique au noeud Définitions globales. Pour cet objet, nous définirons cinq paramètres d'entrée : la longueur du côté d'un triangle équilatéral ; X- Et oui– les coordonnées du milieu de la base ; et les composantes du vecteur normal dirigées du milieu de la base vers le sommet opposé, comme le montrent les figures ci-dessous.


Cinq paramètres utilisés pour définir la taille, la position et l'orientation d'un triangle équilatéral.


Définition des paramètres d'entrée de la pièce géométrique.
Une primitive polygone est utilisée pour construire un triangle équilatéral.


L'objet peut pivoter autour du centre du bord inférieur.


Un objet peut être déplacé par rapport à l'origine.

Maintenant que nous avons défini la partie géométrique, nous l'utilisons une fois dans la section Géométrie. Ce triangle unique équivaut à la zéroième itération du flocon de neige de Koch, et utilisons maintenant Application Builder pour créer des flocons de neige plus complexes.

Balisage de l’interface utilisateur de l’application dans Application Builder

L'application dispose d'une interface utilisateur très simple. Il ne contient que deux composants avec lesquels l'utilisateur peut interagir : Curseur (Curseur)(marqué 1 dans la figure ci-dessous), avec lequel vous pouvez définir le nombre d'itérations nécessaires pour créer un flocon de neige, et Bouton(étiquette 2), en cliquant sur lequel la géométrie résultante est créée et affichée. Il y a aussi Inscription texte(étiquette 3) et Affichage (Affichage) des données(étiquette 4), qui indiquent le nombre d'itérations spécifié, ainsi que la fenêtre Graphiques(étiquette 5), qui affiche la géométrie finale.


L'application comporte un formulaire unique comportant cinq composants.

L'application a deux Définitions, dont l'un définit une valeur entière appelée Itérations, qui est par défaut nulle mais peut être modifiée par l'utilisateur. Un tableau 1D de doubles appelé Centre est également défini. L'élément unique du tableau a une valeur de 0,5, qui est utilisée pour trouver le point central de chaque arête. Cette valeur ne change jamais.


Paramètres pour deux définitions.

Le composant Slider dans l’interface utilisateur contrôle la valeur du paramètre entier Itérations. La capture d'écran ci-dessous montre les paramètres du "Slider" et les valeurs, qui sont définies sous forme d'entiers compris entre 0 et 5. La même source (comme pour le curseur) est également sélectionnée pour le composant. Affichage des données pour afficher le nombre d'itérations spécifié sur l'écran de l'application. Nous limitons l’utilisateur potentiel à cinq itérations car l’algorithme utilisé est sous-optimal et peu efficace, mais suffisamment simple à mettre en œuvre et à démontrer.


Paramètres du composant "Slider".

Examinons ensuite les paramètres de notre bouton, illustrés dans la capture d'écran ci-dessous. Lorsque le bouton est enfoncé, deux commandes sont exécutées. Tout d’abord, la méthode CreateSnowFlake est appelée. La géométrie résultante est ensuite affichée dans la fenêtre graphique.


Paramètres des boutons.

Nous avons maintenant examiné l'interface utilisateur de notre application et nous pouvons voir que la création de toute géométrie de flocon de neige doit se faire via une méthode appelée . Examinons le code de cette méthode, avec la numérotation des lignes ajoutée à gauche et les constantes de chaîne surlignées en rouge :

1 model.geom("geom1" ).feature().clear(); 2 model.geom("geom1" ).create("pi1" , "PartInstance" ); 3 model.geom("geom1" ).run("fin" ); 4 pour (int iter = 1; iter "geom1" ).getNEdges()+1; 6 UnionList = "pi" + iter ; 7 pour (int edge = 1; edge "geom1" ).getNEdges(); edge++) ( 8 String newPartInstance = "pi" + iter + edge; 9 model.geom("geom1" ).create(newPartInstance, "PartInstance" ).set("part" , "part1" ); 10 with(model. geom("geom1" ).feature(newPartInstance)); 11 setEntry("inputexpr" , "Length" , toString(Math.pow(1.0/3.0, iter))); 12 setEntry("inputexpr" , "px" , model.geom("geom1" ).edgeX(edge, Center)); 13 setEntry("inputexpr" , "py" , model.geom("geom1" ).edgeX(edge, Center)); 14 setEntry("inputexpr " , "nx" , model.geom("geom1" ).edgeNormal(edge, Center)); 15 setEntry("inputexpr" , "ny" , model.geom("geom1" ).edgeNormal(edge, Center)) ; 16 endwith(); 17 UnionList = newPartInstance; 18 ) 19 model.geom("geom1" ).create("pi" +(iter+1), "Union" ).selection("input" ).set(UnionList ); 20 model.geom("geom1" ).feature("pi" +(iter+1)).set("intbnd" , "off" ); 21 model.geom("geom1" ).run("fin" ); 22)

Passons en revue le code ligne par ligne pour comprendre quelle fonction remplit chaque ligne :

  1. Effacer toutes les séquences géométriques existantes afin que nous puissions repartir de zéro.
  2. Nous créons une instance de l'objet - notre "triangle", en utilisant la taille, l'orientation et l'emplacement par défaut. Il s'agit de notre flocon de neige d'ordre zéro avec l'étiquette d'identification pi1.
  3. Finalisons la géométrie. Cette opération est nécessaire pour mettre à jour tous les index géométriques.
  4. Commençons le processus d'itération sur toutes les itérations données du flocon de neige, en utilisant la définition des itérations comme condition d'arrêt.
  5. Nous définissons un tableau vide de chaînes, UnionList. Chaque élément du tableau contient un identifiant de divers objets géométriques. La longueur de ce tableau est égale au nombre d’arêtes de la dernière itération plus un.
  6. Nous définissons le premier élément du tableau UnionList. C'est un identifiant du résultat de l'itération précédente. Gardez à l’esprit que l’itération zéro a déjà été créée aux lignes 1 à 3. La valeur entière iter est automatiquement convertie en chaîne et ajoutée à la fin de la chaîne "pi" .
  7. Nous passons en revue le nombre d'arêtes du flocon de neige généré précédemment.
  8. Nous définissons une étiquette d'identification pour une nouvelle instance d'un objet accédant à partir de l'instance de partie « triangle » créée sur ce bord. Notez que les valeurs entières iter et edge sont ajoutées séquentiellement à la fin de la chaîne pi , l'étiquette d'identification de l'instance d'objet.
  9. Nous créons une instance de l'objet "triangle" et lui attribuons l'étiquette d'identifiant qui vient d'être spécifiée.
  10. Nous indiquons que les lignes 11 à 15 font référence à l'instance actuelle de l'objet (instance de partie) en utilisant l'instruction with()/endwith().
  11. Déterminez la longueur du côté du triangle. L'ordre zéro a une longueur de côté de un, donc la nième itération a une longueur de côté de (1/3)n. La fonction toString() est requise pour convertir (convertir) les types de données - un nombre à virgule flottante en chaîne.
  12. Nous fixons X-coordonnée du nouveau triangle, comme point central du côté de la dernière itération. La méthode edgeX est documentée dans . Rappelez-vous que Center est défini sur 0,5.
  13. Nous fixons oui-coordonner.
  14. Nous fixons X-composante du vecteur normal du triangle. La méthode edgeNormal est également documentée dans Manuel de référence de programmation COMSOL.
  15. Nous fixons oui-composante du vecteur normal.
  16. Nous fermons l'instruction with()/endwith().
  17. Ajoutez un identifiant d'étiquette du triangle actuel à la liste de tous les objets.
  18. Nous fermons la recherche de toutes les arêtes.
  19. Nous créons une union booléenne (union logique) de tous les objets dans une séquence géométrique. On attribue une nouvelle valeur pi au label N, où N est le nombre suivant itérations. Des parenthèses sont obligatoires autour de (iter+1) afin que la valeur iter incrémentée soit convertie en chaîne.
  20. Nous indiquons que les limites internes de l'objet final ne sont pas conservées.
  21. Finalisons la géométrie. La dernière opération met à jour tous les index géométriques pour la prochaine itération du flocon de neige.
  22. Nous fermons le cycle d'itérations de création d'un flocon de neige.

Ainsi, nous avons couvert tous les aspects et éléments de notre application. Regardons les résultats !


Notre application simple pour construire le flocon de neige Koch.

Nous pourrions étendre notre application pour écrire de la géométrie dans un fichier, ou même effectuer directement des analyses supplémentaires. Par exemple, nous pourrions concevoir une antenne fractale. Si vous êtes intéressé par la conception de l'antenne, consultez notre exemple, ou même réalisez son agencement à partir de zéro.

Essayez-le vous-même

Si vous souhaitez créer cette application vous-même, mais que vous n'avez pas encore terminé l'Application Builder, les ressources suivantes peuvent vous être utiles :

  • Téléchargez le guide Introduction à l'environnement de développement d'applications en anglais
  • Regardez ces vidéos et apprenez à utiliser
  • Lisez ces rubriques pour vous familiariser avec la manière dont les applications de simulation sont utilisées dans

Une fois que vous aurez couvert ce sujet, vous verrez comment les fonctionnalités de l'application peuvent être étendues pour redimensionner un flocon de neige, exporter la géométrie créée, estimer la surface et le périmètre, et bien plus encore.

Quel type d'application souhaitez-vous créer dans COMSOL Multiphysics ? pour aider.



Articles similaires