Archivo:Sierpinski-Curve-2.png

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

Sierpinski-Curve-2.png(512 × 512 píxeles; tamaño de archivo: 2 kB; tipo MIME: image/png)

Descripción
English: Sierpinski Curves (fractals) of orders 1 and 2. Drawn by a Java program I did myself.
Fecha
Fuente Trabajo propio
Autor 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.



Esta imagen debería volverse a crear como imágenes vectoriales SVG. Esto proporciona muchas ventajas, véase Commons:Media for cleanup (en inglés) para más información. Si ya hay una versión SVG de esta imagen disponible, por favor súbala a Commons. Tras subirla, reemplace esta plantilla con la plantilla {{vector version available|nuevo nombre de imagen.svg}} en esta imagen.
GNU head Se autoriza la copia, distribución y modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación para el Software Libre; sin secciones invariables, textos de portada, ni textos de contraportada. Se incluye una copia de la dicha licencia en la sección titulada Licencia de Documentación Libre GNU.
w:es:Creative Commons
atribución compartir igual
Este archivo se encuentra bajo la licencia Creative Commons Genérica de Atribución/Compartir-Igual 3.0.
Eres libre:
  • de compartir – de copiar, distribuir y transmitir el trabajo
  • de remezclar – de adaptar el trabajo
Bajo las siguientes condiciones:
  • atribución – Debes otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si realizaste algún cambio. Puedes hacerlo de cualquier manera razonable pero no de manera que sugiera que el licenciante te respalda a ti o al uso que hagas del trabajo.
  • compartir igual – En caso de mezclar, transformar o modificar este trabajo, deberás distribuir el trabajo resultante bajo la misma licencia o una compatible como el original.
Esta etiqueta de licencia fue agregada a este archivo como parte de la actualización de la licencia GFDL.

Leyendas

Añade una explicación corta acerca de lo que representa este archivo

Elementos representados en este archivo

representa a

Historial del archivo

Haz clic sobre una fecha y hora para ver el archivo tal como apareció en ese momento.

Fecha y horaMiniaturaDimensionesUsuarioComentario
actual15:39 9 ene 2007Miniatura de la versión del 15:39 9 ene 2007512 × 512 (2 kB)Dbc334cleared and compressed
21:16 2 jul 2005Miniatura de la versión del 21:16 2 jul 2005512 × 512 (23 kB)Nol AdersSierpinski Curves (fractals) of orders 1 and 2

La siguiente página usa este archivo:

Uso global del archivo

Las wikis siguientes utilizan este archivo: