Sierpinski-Curve-2.png(512 × 512 pixel, dimensione del file: 2 KB, tipo MIME: image/png)

Logo di Commons
Logo di Commons
Questo file e la sua pagina di descrizione si trovano su Wikimedia Commons (?)
Descrizione
English: Sierpinski Curves (fractals) of orders 1 and 2. Drawn by a Java program I did myself.
Data
Fonte Opera propria
Autore 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.



Questa immagine (categorizzazione automatica: math) o tutte le immagini in questa categoria o galleria dovrebbero essere ricreate usando grafica vettoriale come file SVG. Questo offre diversi vantaggi: vedi Commons:Media for cleanup per maggiori informazioni. Se è disponibile una versione in formato SVG di questa immagine, per favore caricala. Dopo aver caricato un file SVG, sostituisci questo avviso con il template {{Vector version available|nome_immagine.svg}}.
GNU head È permesso copiare, distribuire e/o modificare questo documento in base ai termini della GNU Free Documentation License, Versione 1.2 o successive pubblicata dalla Free Software Foundation; senza alcuna sezione non modificabile, senza testo di copertina e senza testo di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata Testo della GNU Free Documentation License.
w:it:Creative Commons
attribuzione condividi allo stesso modo
Questo file è disponibile in base alla licenza Creative Commons Attribuzione-Condividi allo stesso modo 3.0 Unported
Tu sei libero:
  • di condividere – di copiare, distribuire e trasmettere quest'opera
  • di modificare – di adattare l'opera
Alle seguenti condizioni:
  • attribuzione – Devi fornire i crediti appropriati, un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in qualsiasi modo ragionevole, ma non in alcun modo che suggerisca che il licenziante approvi te o il tuo uso.
  • condividi allo stesso modo – Se remixi, trasformi o sviluppi il materiale, devi distribuire i tuoi contributi in base alla stessa licenza o compatibile all'originale.
Questo tag di copyright è stato aggiunto nell'ambito dell'aggiornamento della licenza dei progetti Wikimedia.

Didascalie

Aggiungi una brevissima spiegazione di ciò che questo file rappresenta

Elementi ritratti in questo file

raffigura

image/png

Cronologia del file

Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.

Data/OraMiniaturaDimensioniUtenteCommento
attuale17:39, 9 gen 2007Miniatura della versione delle 17:39, 9 gen 2007512 × 512 (2 KB)Dbc334cleared and compressed
23:16, 2 lug 2005Miniatura della versione delle 23:16, 2 lug 2005512 × 512 (23 KB)Nol AdersSierpinski Curves (fractals) of orders 1 and 2

La seguente pagina usa questo file:

Utilizzo globale del file

Anche i seguenti wiki usano questo file: