File:Horocycle normals.svg

מתוך Wikimedia Commons
קפיצה לניווט קפיצה לחיפוש

לקובץ המקורי(קובץ SVG, הגודל המקורי: 800 × 800 פיקסלים, גודל הקובץ: 6 ק"ב)

כיתובים

כיתובים

נא להוסיף משפט שמסביר מה הקובץ מייצג

תקציר

[עריכה]
תיאור
English: Horocycle in Poincaré disk model and some normals
תאריך יצירה
מקור נוצר על־ידי מעלה היצירה
יוצר Claudio Rocchini
אישורים והיתרים
(שימוש חוזר בקובץ זה)
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);
}

רישיון

[עריכה]
אני, בעל זכויות היוצרים על היצירה הזאת, מפרסם אותה בזאת תחת הרישיונות הבאים:
GNU head מוענקת בכך הרשות להעתיק, להפיץ או לשנות את המסמך הזה, לפי תנאי הרישיון לשימוש חופשי במסמכים של גנו, גרסה 1.2 או כל גרסה מאוחרת יותר שתפורסם על־ידי המוסד לתוכנה חופשית; ללא פרקים קבועים, ללא טקסט עטיפה קדמית וללא טקסט עטיפה אחורית. עותק של הרישיון כלול בפרק שכותרתו הרישיון לשימוש חופשי במסמכים של גנו.
w:he:Creative Commons
ייחוס
הקובץ הזה מתפרסם לפי תנאי רישיון קריאייטיב קומונז ייחוס 3.0 לא מותאם.
הנכם רשאים:
  • לשתף – להעתיק, להפיץ ולהעביר את העבודה
  • לערבב בין עבודות – להתאים את העבודה
תחת התנאים הבאים:
  • ייחוס – יש לתת ייחוס הולם, לתת קישור לרישיון, ולציין אם נעשו שינויים. אפשר לעשות את זה בכל צורה סבירה, אבל לא בשום צורה שמשתמע ממנה שמעניק הרישיון תומך בך או בשימוש שלך.
הנכם מוזמנים לבחור את הרישיון הרצוי בעיניכם.

היסטוריית הקובץ

ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.

תאריך/שעהתמונה ממוזערתממדיםמשתמשהערה
נוכחית11:51, 30 במאי 2008תמונה ממוזערת לגרסה מ־11:51, 30 במאי 2008‪800 × 800‬ (6 ק"ב)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

הדף הבא משתמש בקובץ הזה:

שימוש גלובלי בקובץ

אתרי הוויקי השונים הבאים משתמשים בקובץ זה: