الرئيسيةبحث

صورة:Von koch 6 etapes.svg

Von_koch_6_etapes.svg (ملف إس في جي، أبعاده 621 × 180 بكسل، حجم الملف: 1 كيلوبايت)


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
(Reusing this image)

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 copyright holder 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".

 |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | Ido |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | +/-

الصفحات التالية تحتوي على وصلة لهذه الصورة: