Image:Von koch 6 etapes.svg

From Wikipedia, the free encyclopedia

No higher resolution available.

Von_koch_6_etapes.svg‎ (309 × 90 pixel, file size: 90 KB, MIME type: image/svg+xml)

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.
Commons is attempting to create a freely licensed media file repository. You can help.

Summary

Description
English: von Koch snowflake curve after 6 steps (4 097 points); created with Scilab, transformed into SVG by pstoedit, layout by Inkscape
Français : Courbe du flocon de neige de von Koch après 6 étapes (4 097 points) ; créé avec Scilab, transformé en SVG avec pstoedit, mis en forme avec Inkscape
Source

self-made

Date

29 June 2006

Author

Christophe Dang Ngoc Chan

Permission

GFDL

Other 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
// ************************************************
// *                                              *
// * Courbe de von Koch dite du "flocon de neige" *
// *                                              *
// ************************************************

clear;
clf;

// **************
// * constantes *
// **************

n = 6; // nombre d'etapes ;
// limite a 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
rapport = sqrt(3)/2; // rapport entre la hauteur et le cote d'un triangle equilateral
l = 1; // longueur du segment initial

// ******************
// * initialisation *
// ******************

xcourbe = [zeros(1,N)];
xcourbe1 = xcourbe;
ycourbe = [zeros(1,N)];
ycourbe1 = ycourbe;

// *************
// * fonctions *
// *************

function [xx, yy] = etape(x, y)
  
   // x et y sont des tableaux de 2 valeurs, les extremites du segment
   // xx et yy sont des tableaux de 3 valeurs, les trois points intermediaires
   
   xmilieu0 = (x(2)+x(1))/2;
   ymilieu0 = (y(2)+y(1))/2; // position initiale du milieu
   
   xu = x(2)-x(1);
   yu = y(2)-y(1); // vecteur du segment
   
   xn = y(1)-y(2);
   yn = x(2)-x(1); // vecteur normal au segment
   
   xx(1) = x(1)+xu/3; yy(1) = y(1)+yu/3;
   xx(3) = x(2)-xu/3; yy(3) = y(2)-yu/3;
  
   xx(2) = xmilieu0 + xn*rapport/3;
   yy(2) = ymilieu0 + yn*rapport/3;
   
endfunction

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

xcourbe(2) = l;

for i=1:n
   jmax = 4^(i-1); // nombre de segments au debut de l'etape i
   for j=1:jmax/2+1 // on travaille par deux points j et j+1 (segment j)
   // en raison de la symetrie, on travaille sur une demie courbe
      decalage = (j-1)*4; // un point est decale en raison de l'apparition de nouveaux points
      x_init = xcourbe(j:j+1);
      y_init = ycourbe(j:j+1); // segment j
      [x_trans, y_trans] = etape(x_init,y_init); // segment transforme'
      xcourbe1(decalage+1) = x_init(1); xcourbe1(decalage+5) = x_init(2);
      ycourbe1(decalage+1) = y_init(1); ycourbe1(decalage+5) = y_init(2);
      for k=1:3
         xcourbe1(k+decalage+1) = x_trans(k);
         ycourbe1(k+decalage+1) = y_trans(k); // mise dans le vecteur global
      end
   end
   xcourbe = xcourbe1; ycourbe = ycourbe1;
end

for i=1:4^n
   ycourbe(N-i+1) = ycourbe(i);
   xcourbe(N-i+1) = l-xcourbe(i); // 2e demie courbe
end

xpoly(xcourbe,ycourbe) // trace
isoview(0,l,0,rapport*l)

Licensing

I, the author of this work, hereby publish it under the following license:
GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled " GNU Free Documentation License".

العربية | Asturianu | Български | বাংলা | ইমার ঠার | Brezhoneg | Bosanski | Català | Sinugboanong Binisaya | Česky | Dansk | Deutsch | Ελληνικά | English | Esperanto | Español | Eesti | Euskara | فارسی | Suomi | Français | Galego | עברית | Hrvatski | Magyar | Bahasa Indonesia | Ido | Íslenska | Italiano | 日本語 | ქართული | 한국어 | Kurdî / كوردي | Latina | Lëtzebuergesch | Lietuvių | Bahasa Melayu | Nnapulitano | Nederlands | Norsk (nynorsk) | Norsk (bokmål) | Polski | Português | Română | Русский | Slovenčina | Slovenščina | Shqip | Српски | Svenska | తెలుగు | ไทย | Türkçe | Українська | اردو | Tiếng Việt | Volapük | 中文(简体) | 中文(繁體) | +/-

The following pages on the English Wikipedia link to this file (pages on other projects are not listed):