Αρχείο:Fractal canopy.svg

Από testwiki
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
Πρωτότυπο αρχείο (Αρχείο SVG, ονομαστικό μέγεθος 800 × 800 εικονοστοιχεία, μέγεθος αρχείου: 229 KB)

Αυτό το αρχείο είναι από το Wikimedia Commons και ενδέχεται να χρησιμοποιείται από άλλα εγχειρήματα. Η περιγραφή στη σελίδα περιγραφής του εκεί, εμφανίζεται παρακάτω.

Σύνοψη

Περιγραφή
English: Example of Fractal Canopy with angle=PI/11 and reduction factor=0.75
Ημερομηνία
Πηγή Έργο αυτού που το ανεβάζει
Δημιουργός Claudio Rocchini
SVG ανάπτυξη
InfoField
 Ο πηγαίος κώδικας αυτού του SVG είναι έγκυρος.
 Αυτή η διανυσματική εικόνα δημιουργήθηκε με C

Αδειοδότηση

Claudio Rocchini, ο κάτοχος των πνευματικών δικαιωμάτων αυτού του έργου, το δημοσιεύει δια του παρόντος υπό την εξής άδεια χρήσης:
w:el:Creative Commons
αναφορά προέλευσης παρόμοια διανομή
Απόδοση:
Είστε ελεύθερος:
  • να μοιραστείτε – να αντιγράψετε, διανέμετε και να μεταδώσετε το έργο
  • να διασκευάσετε – να τροποποιήσετε το έργο
Υπό τις ακόλουθες προϋποθέσεις:
  • αναφορά προέλευσης – Θα πρέπει να κάνετε κατάλληλη αναφορά, να παρέχετε σύνδεσμο για την άδεια και να επισημάνετε εάν έγιναν αλλαγές. Μπορείτε να το κάνετε με οποιοδήποτε αιτιολογήσιμο λόγο, χωρίς όμως να εννοείται με οποιονδήποτε τρόπο ότι εγκρίνουν εσάς ή τη χρήση του έργου από εσάς.
  • παρόμοια διανομή – Εάν αλλάξετε, τροποποιήσετε ή δημιουργήσετε πάνω στο έργο αυτό, μπορείτε να διανείμετε αυτό που θα προκύψει μόνο υπό τους όρους της ίδιας ή συμβατής άδειας με το πρωτότυπο.

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:#000;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;
}

Λεζάντες

Προσθέστε εξήγηση μιας γραμμής για το τι αντιπροσωπεύει αυτό το αρχείο

Τα Αντικείμενα που απεικονίζονται σε αυτό το αρχείο

απεικονίζει

Ιστορικό αρχείου

Πατήστε σε μια ημερομηνία/ώρα για να δείτε το αρχείο όπως εμφανιζόταν εκείνη την χρονική στιγμή.

Ημερομηνία/ΏραΜικρογραφίαΔιαστάσειςΧρήστηςΣχόλιο
τρέχον11:41, 2 Ιανουαρίου 2013Μικρογραφία για την έκδοση της 11:41, 2 Ιανουαρίου 2013800 × 800 (229 KB)wikimediacommons>RocchiniUser created page with UploadWizard

Η ακόλουθη σελίδα χρησιμοποιεί προς αυτό το αρχείο: