Archivo:Fractal canopy.svg

Ver la imagen en su resolución original((Imagen SVG, nominalmente 800 × 800 pixels, tamaño de archivo: 229 kB))

Resumen

Descripción
English: Example of Fractal Canopy with angle=PI/11 and reduction factor=0.75
Fecha
Fuente Trabajo propio
Autor Claudio Rocchini

Licencia

Yo, el titular de los derechos de autor de esta obra, la publico en los términos de la siguiente licencia:
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.

Source Code

/* (C)2013 Claudio Rocchini, CC-BY 3.0 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <vector>

const double PI = 3.1415926535897932384626433832795;

class edge {
public:
	double l,t,a,x,y;
	edge() {}
	edge( double nl, double nt, double na, double nx, double ny ) :
		l(nl),t(nt),a(na),x(nx),y(ny) {}
};

int main() {
	const double SX = 800;  const double SY = 800;
	const double a = PI/11; const double r = 0.75; const double minl = 10;
	
	std::vector<edge> st;
	st.push_back( edge(200,25,-PI/2,SX/2,SY-10) );
	
	FILE * fo = fopen("fractal_canopy.svg","w");
	fprintf(fo,
		"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
		"<svg xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns=\"http://www.w3.org/2000/svg\"\n"
		"version=\"1.0\" width=\"%g\" height=\"%g\" id=\"fractal_canopy\">\n"
		,SX,SY
	);
	
	double lastt = -1.0;
	for(size_t i=0;i<st.size();++i) {
		double nx = st[i].x+st[i].l*cos(st[i].a);
		double ny = st[i].y+st[i].l*sin(st[i].a);
	
		if(lastt!=st[i].t) {
			if(lastt!=-1.0) fprintf(fo,"</g>\n");
			lastt = st[i].t;
			fprintf(fo,"<g style=\"stroke:#000000;stroke-width:%g;fill:none\">\n"
				,lastt);
		}
		fprintf(fo,"<line x1=\"%6.2f\" y1=\"%6.2f\" x2=\"%6.2f\" y2=\"%6.2f\"/>\n"
			,st[i].x,st[i].y,nx,ny);
		if(st[i].l<=minl) continue;
		st.push_back( edge(st[i].l*r,st[i].t*r,st[i].a+a,nx,ny) );
		st.push_back( edge(st[i].l*r,st[i].t*r,st[i].a-a,nx,ny) );
	}
	fprintf(fo,"</g>\n");
	fprintf(fo,"</svg>\n");
	fclose(fo);
	return 0;
}

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
actual10:41 2 ene 2013Miniatura de la versión del 10:41 2 ene 2013800 × 800 (229 kB)RocchiniUser created page with UploadWizard

La siguiente página usa este archivo:

Uso global del archivo

Las wikis siguientes utilizan este archivo:

Metadatos