Slika:Horocycle normals.svg

Izvorna datoteka(Datoteka SVG, nominalno 800 × 800 pikslov, velikost datoteke: 6 KB)


Povzetek

Opis
English: Horocycle in Poincaré disk model and some normals
Datum
Vir lastno delo
Avtor Claudio Rocchini
Dovoljenje
(Nadaljnja uporaba datoteke)
CC-BY 3.0

Source

You need some basic 2d gemetric functions (line line intersection, circle circle inter. etc)

void Horocycle()
{
	const double DIMX = 800;
	const double DIMY = 800;
	const double B    = 32;

	FILE * fp = fopen("c:\\temp\\horocycle.svg","w");

	fprintf(fp,
		"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
		"<svg\n"
		"xmlns:svg=\"http://www.w3.org/2000/svg\"\n"
		"xmlns=\"http://www.w3.org/2000/svg\"\n"
		"version=\"1.0\"\n"
		"width=\"%g\"\n"
		"height=\"%g\"\n"
		"id=\"rocco\">\n"
		,DIMX,DIMY
	);

	circle2 gc; gc.c = point2(DIMX/2,DIMY/2); gc.r = (DIMX-2*B)/2;

	fprintf(fp,"<circle cx=\"%g\" cy=\"%g\" r=\"%g\" style=\"fill:#ffffE0;stroke:#000000;stroke-width:3;stroke-opacity:1\" />\n"
		,gc.c.x,gc.c.y
		,gc.r
	);	

	circle2 hc; hc.r = DIMX/3; hc.c = point2(DIMX/2,B+hc.r);

	fprintf(fp,"<circle cx=\"%g\" cy=\"%g\" r=\"%g\" style=\"fill:none;stroke:#0000A0;stroke-width:3;stroke-opacity:1\" />\n"
		,hc.c.x,hc.c.y
		,hc.r
	);

	const int N = 24;
	int i;
	for(i=0;i<N;++i)
	{
		double a = 2*PI*i/N + PI/N;
		point2 p = hc.point(a);

		fprintf(fp,"<circle cx=\"%g\" cy=\"%g\" r=\"%g\" style=\"fill:#000000;stroke:#000000;stroke-width:3;stroke-opacity:1\" />\n"
			,p.x,p.y
			,4.0
		);

		segment2 s( p, point2(DIMX/2,B) );
		line2 ax; s.axis(ax);
		line2 ba; ba.orig.x = DIMX/2; ba.orig.y = B; ba.dire.x = 1; ba.dire.y = 0;
		point2 pp; line_line_int(ax,ba,pp);
		double ra = dist(pp,p);

		circle2 cc; cc.c = pp; cc.r = ra;
	
		point2 p1,p2; intersection(cc,gc,p1,p2);

		fprintf(fp,"<path d=\"M%g,%g A%g,%g 0 0,1 %g,%g\" style=\"fill:none;stroke:#800000;stroke-width:1.5;stroke-opacity:1\" />\n"
			,p1.x,p1.y
			,cc.r,cc.r
			,p2.x,p2.y
		);
	}

	fprintf(fp,"</svg>\n");
	fclose(fp);
}

Licenca

Jaz, imetnik avtorskih pravic na tem delu, ga s tem objavljam pod naslednjimi licencami:
GNU head Ta dokument je dovoljeno kopirati, razširjati in/ali spreminjati pod pogoji Licence GNU za prosto dokumentacijo, različica 1.2 ali katera koli poznejša, ki jo je objavila ustanova Free Software Foundation; brez nespremenljivih delov ter brez besedil na sprednji ali zadnji platnici. Kopija licence je vključena v razdelek Licenca GNU za prosto dokumentacijo.
w:sl:Creative Commons
priznanje avtorstva
Datoteka je objavljena pod licenco Creative Commons Priznanje avtorstva 3.0 Nedoločena.
Dovoljeno vam je:
  • deljenje – reproducirati, distribuirati in javno priobčevati delo
  • predelava – predelati delo
Pod naslednjimi pogoji:
  • priznanje avtorstva – Navesti morate ustrezno avtorstvo, povezavo do licence in morebitne spremembe. To lahko storite na kakršen koli primeren način, vendar ne na način, ki bi nakazoval, da dajalec licence podpira vas ali vašo uporabo dela.
Izberete lahko licenco po svoji izbiri.

Napisi

Dodajte enovrstični opis, kaj ta datoteka predstavlja

Predmeti, prikazani v tej datoteki

motiv

30. maj 2008

image/svg+xml

Zgodovina datoteke

Kliknite datum in čas za ogled datoteke, ki je bila takrat naložena.

Datum in časSličicaVelikostUporabnikKomentar
trenutno13:51, 30. maj 2008Sličica za različico z datumom 13:51, 30. maj 2008800 × 800 (6 KB)Rocchini{{Information |Description={{en|1=Horocycle in Poincaré disk model and some normals}} |Source=Opera creata dall'uploader (own work by uploader) |Author=Claudio Rocchini |Date=2008-05-30 |Permission=CC-BY 3.0 |other_versions= }} {{Image

Datoteka je del naslednje 1 strani slovenske Wikipedije (strani drugih projektov niso navedene):

Globalna uporaba datoteke

To datoteko uporabljajo tudi naslednji vikiji: