Fichye:Von koch 6 etapes.svg

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Depi Wikipedya, ansiklopedi lib

Fichye orijinal(Fichye SVG, rezolisyon de 600 × 174 piksèl, gwosè fichye : 2 kio)

Fichye sa a sòti nan Wikimedia Commons e ka sèvi nan lòt pwojè. Desktripsyon ki sou paj li file description page ekri anba a.

Rezime

Deskripsyon
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.
Dat
Sous Travay pèsonèl
Kreyatè Christophe Dang Ngoc Chan (cdang)
Pèmisyon :
(Resèvi ak fichye sa a)
GFDL
Autres versions Image:Von koch 1 etape.svg, Image:Von koch 2 etapes.svg, Image:Von koch 3 etapes.svg, Image:Von koch 4 etapes.svg, Image:Von koch 5 etapes.svg, Image:Von koch 6 etapes.svg, Image:VonKoch.svg
SVG information
InfoField
 
Le code de ce fichier SVG est valide.
 
Cette carte a été créée avec un éditeur de texte.

Scilab source

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 rendu
N = 4^n+1;
// nombre de points
sin_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éral
  
  xu = (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 vector
  
  xv = 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;  
endfunction

function [xkoch,ykoch]=vonkoch(x,y,n)
  // construit la courbe
  // initialisation
  xkoch = x;
  ykoch = y;
  xkoch1 = x;
  ykoch1 = y;
  for i=1:n
    jmax = 4^(i-1);
    // nombre de segments au début de l'étape i
    for j=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 courbe
      decalage = (j-1)*4; 
      // les nouveaux points décalent l'indice des points suivants
      x_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);
      for k=1:3
        xkoch1(k+decalage+1) = x_trans(k);
        ykoch1(k+decalage+1) = y_trans(k);
        // mise dans le vecteur global
      end
    end
    xkoch = xkoch1; ykoch = ykoch1;
  end
  
  for i=1:4^n
    ykoch(N-i+1) = ykoch(i);
    xkoch(N-i+1) = l-xkoch(i); 
    // 2e demie courbe
  end
endfunction

// ***********************
// * programme principal *
// ***********************

xcourbe(2) = l;
[xcourbe,ycourbe] = vonkoch(xcourbe,ycourbe,n);

// tracé de la courbe

xpoly(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éé).

enregistrement du fichier

nom='von_koch_'+code2str(n)+'_etapes.svg';
xs2svg(0,nom)

Version récursive

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 rendu
sin_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 AB
    v = [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 ;
    if i == 1 then
        x = [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")
    else
        j = i - 1 ;
        vonkoch(A, C, j);
        vonkoch(C, D, j);
        vonkoch(D, E, j);
        vonkoch(E, B, j);
    end
endfunction

// ***********************
// * programme principal *
// ***********************

debut = [0;0] ;
fin = [l;0];

vonkoch(debut, fin, n)

isoview(0, l, 0, l*sin_soixante/3)

// enregistrement du fichier

nom = "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 :
GNU head 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.
w:fr:Creative Commons
Rekonèt avèk non otè Enfòmasyon sa yo ka pataje
Fichye sa a distribiye selon lisans Creative Commons.
Ou gen dwa:
  • 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.
Chwazi lisans ou vle a.

Légendes

Ajoutez en une ligne la description de ce que représente ce fichier

Éléments décrits dans ce fichier

dépeint français

créé par français

Valeur sans élément de Wikidata

29 jen 2006

Istorik fichye a

Klike sou yon dat/yon lè pou wè fichye a jan li te ye nan moman sa a.

Dat ak lèMinyatiGrandè yoItilizatèKomantè
Kounye a21 fevriye 2018 à 11:22Minyati pou vèsyon 21 fevriye 2018 à 11:22600 × 174 (2 kio)Cdangeven values and indentations
19 me 2007 à 21:48Minyati pou vèsyon 19 me 2007 à 21:48621 × 180 (1 kio)FibonacciRemade from scratch with simpler code.
29 jen 2006 à 14:52Minyati pou vèsyon 29 jen 2006 à 14:52309 × 90 (90 kio)Cdangin plain SVG (better behaviour)
29 jen 2006 à 13:06Minyati pou vèsyon 29 jen 2006 à 13:06309 × 90 (96 kio)Cdang{{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

paj sa a itilize fichye sa a:

Itilizasyon global fichye a

Wiki sa a yo sèvi ak fichye sa a:

Metadone