Sierpinski-Curve-2.png(512 × 512 pixels, taille du fichier : 2 kio, type MIME : image/png)

Ce fichier et sa description proviennent de Wikimedia Commons.

Description
English: Sierpinski Curves (fractals) of orders 1 and 2. Drawn by a Java program I did myself.
Date
Source Travail personnel
Auteur User:Nol Aders

Pseudocode

points = [] // Array dels punts
max_order = 8 // Nombre d'ordres a avaluar

// Punts inicials
points <- Point.new(0, -1, :top) // Amunt
points <- Point.new(1, 0, :right) // Dreta
points <- Point.new(0, 1, :bottom) // Avall
points <- Point.new(-1, 0, :left) // Esquerra

// Crear cada ordre a partir dels punts de l'anterior
for order in 1..max_order
 // Els punts actuals ja no surten al nou ordre
 current = points.clone
 points.clear
 // La distància depèn de l'ordre
 d = sd = 0.5 / (2 ** (order - 1))
 // Crear punt nou a partir de cada punt de l'ordre anterior
 for point in corrent
 px = point.x
 py = point.y
 case point.type
 when :top // Amunt
 points <- Point.new(px - d - sd, py - sd, :top)
 points <- Point.new(px - d, py, :right)
 points <- Point.new(px + d, py, :left)
 points <- Point.new(px + d + sd, py - sd, :top)
 when :right // Dreta
 points <- Point.new(px + sd, py - d - sd, :right)
 points <- Point.new(px, py - d, :bottom)
 points <- Point.new(px, py + d, :top)
 points <- Point.new(px + sd, py + d + sd, :right)
 when :bottom // Avall
 points <- Point.new(px + d + sd, py + sd, :bottom)
 points <- Point.new(px + d, py, :left)
 points <- Point.new(px - d, py, :right)
 points <- Point.new(px - d - sd, py + sd, :bottom)
 when :left // Esquerra
 points <- Point.new(px - sd, py + d + sd, :left)
 points <- Point.new(px, py + d, :top)
 points <- Point.new(px, py - d, :bottom)
 points <- Point.new(px - sd, py - d - sd, :left)
 end
 end
end


Pascal src code

uses GraphABC;

procedure RLine(x, y, x1, y1: real) := Line(Round(x), Round(y), Round(x1), Round(y1)); 

function GetAngle(x, y, x2, y2: real): real;
begin
  var angle := Abs(RadToDeg(ArcTan((y2 - y) / (x2 - x))));
  if (x2 = x) and (y2 = y) then
    Result := 0
  else
    if x2 > x then
      if y2 > y then Result := angle else Result := 360 - angle
    else
      if y2 > y then Result := 180 - angle else Result := 180 + angle;
end;

procedure Draw(x, y, x1, y1: real; inverted: boolean);
begin
  var angle := GetAngle(x, y, x1, y1);
  var s := 1 - 2 * Ord(inverted);
  var r := Sqrt(Sqr(x1 - x) + Sqr(y1 - y)) / 2;
  
  var ang1 := DegToRad(angle - 60 * s);
  var xA := x + r * Cos(ang1);
  var yA := y + r * Sin(ang1);
  
  var ang2 := DegToRad(angle - 120 * s);
  var xB := x1 + r * Cos(ang2);
  var yB := y1 + r * Sin(ang2);
  
  if 2 * r < 8 then
  begin
    RLine(x, y, xA, yA);
    RLine(xA, yA, xB, yB);
    RLine(xB, yB, x1, y1);
  end
  else
  begin
    Draw(x, y, xA, yA, not inverted);
    Draw(xA, yA, xB, yB, inverted);
    Draw(xB, yB, x1, y1, not inverted);
  end;
end;

begin
  Draw(100, 100, 400, 450, false);
end.



Cette image (de type math) devrait être recréée dans un format vectoriel, en tant que fichier SVG. Cela offrirait plusieurs avantages : voir Commons:Media for cleanup pour plus d'informations. Si une version SVG de cette image est déjà disponible, merci de bien vouloir l'envoyer. Après cela, remplacez ce modèle par {{vector version available|nouveau nom d'image.svg}}.
GNU head 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.
w:fr:Creative Commons
paternité partage à l’identique
Ce fichier est disponible selon les termes de la licence Creative Commons Attribution – Partage dans les Mêmes Conditions 3.0 (non transposée).
Vous êtes libre :
  • 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.

Légendes

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

Éléments décrits dans ce fichier

dépeint

image/png

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel9 janvier 2007 à 17:39Vignette pour la version du 9 janvier 2007 à 17:39512 × 512 (2 kio)Dbc334cleared and compressed
2 juillet 2005 à 23:16Vignette pour la version du 2 juillet 2005 à 23:16512 × 512 (23 kio)Nol AdersSierpinski Curves (fractals) of orders 1 and 2

La page suivante utilise ce fichier :

Usage global du fichier

Les autres wikis suivants utilisent ce fichier :