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)
Kondisyon itlizasyon
Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
Ou bay pèmisyon pou kopye, distribye ak/oswa modifye dokiman sa a dapre kondisyon GNU Free Documentation License, Vèsyon. 1.2 oswa nenpòt vèsyon ki pibliye pita pa Free Software Foundation; san okenn Seksyon ki pa ka chanje, pa gen okenn Tèks ak premye paj kouvèti, epi pa gen okenn Tèks Denyè-Kouvèti. Gen yon kopi lisans lan nan seksyon ki rele GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
pou pataje – pou kopye, distribiye epi difize ouvraj la
pou remiks – pou adapte ouvraj la
Selon kondisyon sa a yo:
Rekonèt avèk non otè – Ou dwe bay enfòmasyon apwopriye sou otè a, bay yon lyen pou lisans lan, epi endike si te gen chanjman ki fèt. Ou ka fè sa nan nenpòt fason rezonab, men okenn fason ki sijere ke otè a soutni oswa apwouve itilizasyon ou an.
Enfòmasyon sa yo ka pataje – Si ou fè rekopye, transfòme, oswa baze sou materyèl sa, ou dwe distribye kontribisyon ou anba menm oswa yon lisans konpatib avèk orijinal la.
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
Chwazi lisans ou vle a.
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
Fichye sa genyen enfòmasyon adisyonèl, petèt ki soti nan yon kamera dijital oubyen yon nimerizè itilize pou kreye oubyen dijitalize li. Si fichye sa te modifye depi kreyasyon li, kèk detay ka pa menm avèk original la.