English: von Koch snowflake curve after 6 steps (4,097 points); initially created with Scilab, transformed into SVG by pstoedit, layout by Inkscape. New version was created by a text editor.
Français : Courbe du flocon de neige de von Koch après 6 étapes (4,097 points) ; initialement créé avec Scilab, transformé en SVG avec pstoedit, mis en forme avec Inkscape. La nouvelle version a été faite avec un éditeur de texte.
This media was created with Scilab, a free open-source software.
Here is a listing of the Scilab source used to create this file.
English: English version by default.
Français : Version française, si les préférences de votre compte sont réglées (voir Special:Preferences).
Version itérative
// ************************************************// * *// * Courbe de von Koch dite du "flocon de neige" *// * *// ************************************************clear;clf;// **************// * constantes *// **************n=6;// nombre d'étapes ;// limité à 9 (262 145 points), sinon il faut changer la taille de la pile (stacksize)// 6 etapes (4 097 points) sont suffisantes pour un bon renduN=4^n+1;// nombre de pointssin_soixante=sqrt(3)/2;// sin(60°)l=1;// longueur du segment initial (unité arbitraire)// ******************// * initialisation *// ******************ycourbe=[zeros(1,N)];ycourbe1=ycourbe;// *************// * fonctions *// *************function[xx, yy] = etape(x, y)// à partir d'un segment [(x(1),y(1)) ; (x(2),y(2))]// fabrique la ligne [(xx(1),yy(1)) ; (xx(2),yy(2)) ; (xx(3),yy(3))]// x et y sont des tableaux de 2 valeurs, les extremites du segment de base// xx et yy sont des tableaux de 3 valeurs,// les angles du triangle équilatéralxu=(x(2)-x(1))/3;yu=(y(2)-y(1))/3;// ----- fr : tiers du vecteur du segment de base// ----- en : third of the basis line vectorxv=0.5*xu-sin_soixante*yu;yv=sin_soixante*xu+0.5*yu;// vecteur tourné de +60°xx(1)=x(1)+xu;yy(1)=y(1)+yu;xx(3)=x(2)-xu;yy(3)=y(2)-yu;xx(2)=xx(1)+xv;yy(2)=yy(1)+yv;endfunctionfunction[xkoch,ykoch]=vonkoch(x,y,n)// construit la courbe// initialisationxkoch=x;ykoch=y;xkoch1=x;ykoch1=y;fori=1:njmax=4^(i-1);// nombre de segments au début de l'étape iforj=1:jmax/2+1// on travaille par deux points d'indices j et j+1 (segment n°j)// grâce à la symétrie, on travaille sur une demie courbedecalage=(j-1)*4;// les nouveaux points décalent l'indice des points suivantsx_init=xkoch(j:j+1);y_init=ykoch(j:j+1);// segment n°j[x_trans,y_trans]=etape(x_init,y_init);// segment transforméxkoch1(decalage+1)=x_init(1);xkoch1(decalage+5)=x_init(2);ykoch1(decalage+1)=y_init(1);ykoch1(decalage+5)=y_init(2);fork=1:3xkoch1(k+decalage+1)=x_trans(k);ykoch1(k+decalage+1)=y_trans(k);// mise dans le vecteur globalendendxkoch=xkoch1;ykoch=ykoch1;endfori=1:4^nykoch(N-i+1)=ykoch(i);xkoch(N-i+1)=l-xkoch(i);// 2e demie courbeendendfunction// ***********************// * programme principal *// ***********************xcourbe(2)=l;[xcourbe,ycourbe]=vonkoch(xcourbe,ycourbe,n);// tracé de la courbexpoly(xcourbe,ycourbe)isoview(0,l,0,l*sin_soixante/3)
On peut ajouter le code suivant pour créer le fichier (l'export au format SVG n'était pas encore disponible lorsque le fichier avait été créé).
Le code est plus compact mais l'exécution est plus lente, et ne génère pas le tableau des valeurs.
//============================================================================// nom : von_koch.sce// auteur : Christophe Dang Ngoc Chan// date de création : 2012-10-23// dates de modification : // 2013-07-08 : guillemets ' -> "// 2013-07-2 : vectorisation du calcul//----------------------------------------------------------------------------// version de Scilab : 5.3.1// module Atoms requis : aucun//----------------------------------------------------------------------------// Objectif : trace la courbe du "flocon de neige" de von Koch// Entrées : aucun (paramètres codés en dur)// Sorties : fenêtre graphique avec une courbe ; fichier SVG//============================================================================clear;clf;// **************// * constantes *// **************n=6;// nombre d'étapes ;// limité à 9 (262 145 points), sinon il faut changer la taille de la pile (stacksize)// 6 etapes (4 097 points) sont suffisantes pour un bon rendusin_soixante=sqrt(3)/2;// sin(60°)l=1;// longueur du segment initial (unité arbitraire)// ******************// * initialisation *// ******************// *************// * fonctions *// *************function[]=vonkoch(A, B, i)u=(B-A)/3;// tiers du vecteur ABv=[0.5*u(1)-sin_soixante*u(2);sin_soixante*u(1)+0.5*u(2)];// vecteur tourné de +60°C=A+u;D=C+v;E=B-u;ifi==1thenx=[A(1);C(1);D(1);E(1);B(1)];y=[A(2);C(2);D(2);E(2);B(2)];xpoly(x,y,"lines")elsej=i-1;vonkoch(A,C,j);vonkoch(C,D,j);vonkoch(D,E,j);vonkoch(E,B,j);endendfunction// ***********************// * programme principal *// ***********************debut=[0;0];fin=[l;0];vonkoch(debut,fin,n)isoview(0,l,0,l*sin_soixante/3)// enregistrement du fichiernom="von_koch_"+string(n)+"_etapes.svg";xs2svg(0,nom)
Conditions d’utilisation
Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
Vous avez la permission de copier, distribuer et modifier ce document selon les termes de la GNU Free Documentation License version 1.2 ou toute version ultérieure publiée par la Free Software Foundation, sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. Un exemplaire de la licence est inclus dans la section intitulée GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
de partager – de copier, distribuer et transmettre cette œuvre
d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
partage à l’identique – Si vous modifiez, transformez, ou vous basez sur cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec celle de l’original.
Ce bandeau de licence a été ajouté à ce fichier dans le cadre de la procédure de mise à jour des licences des images sous GFDL.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue
Vous pouvez choisir l’une de ces licences.
Légendes
Ajoutez en une ligne la description de ce que représente ce fichier
{{Information |Description= {{en|von Koch snow flake curve after 6 steps; created with Scilab, transformed into SVG by pstoedit, layout by Inkscape}} {{fr|Courbe du flocon de neige de von Koch après 6 étapes ; créé avec Scilab, transformé en SVG avec