ملف:Hyperbolic coordinates.svg

من testwiki
اذهب إلى التنقل اذهب إلى البحث
الملف الأصلي (ملف SVG، أبعاده ٨٠٠ × ٨٠٠ بكسل، حجم الملف: ٢٠ كيلوبايت)

هذا الملف من ويكيميديا كومنز ويمكن استخدامه بواسطة المشاريع الأخرى. الوصف على صفحة وصف الملف هناك معروض بالأسفل.

ملخص

الوصف Hyperbolic coordinates grip on I cartesian quadrant
التاريخ
المصدر عمل شخصي
المؤلف Rocchini
الترخيص
(إعادة استخدام هذا الملف)
CC-BY 3.0

Source Code

In C++

void hyperbolic_coordinates() {
	const double DIMX = 800; const double DIMY = 800;
	const double B    = 64;  const double S    = 128;
	const double miu  = -2;  const double mau  = 2;
	const double miv  = 0;   const double mav  = 8;
	const int N = 24;        const int M = 1024;

	FILE * fp = fopen("c:\\temp\\hyperbolic_coordinates.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
	);
	fprintf(fp,"<g id=\"edge_layer1\" style=\"fill:none;stroke:#800000;stroke-width:1.5;stroke-opacity:1\">\n" );

	int i,j;
	for(j=0;j<N;++j) {
		const double v = miv + (mav-miv)*double(j)/(N-1);
		fprintf(fp, "<path d=\"" );
		bool first = true;
		for(i=0;i<M;++i) {
			const double u = miu + (mau-miu)*double(i)/(M-1);
			double x = v*exp( u); double y = v*exp(-u);
			x =       x*S+B;      y = DIMY-(y*S+B);
			if(x>=B && x<=DIMX-B && y>=B && y<=DIMY-B ) {
				if(first) fprintf(fp,"M ");
				else      fprintf(fp,"L ");
				fprintf(fp,"%g %g ",x,y);
				first = false;
			}
		}
		fprintf(fp,"\"/>\n");
	}

	fprintf(fp,
		"</g>\n"
		"<g id=\"edge_layer2\" style=\"fill:none;stroke:#000080;stroke-width:1.5;stroke-opacity:1\">\n"
	);

	for(i=0;i<N ;++i) {
		const double u = miu + (mau-miu)*double(i)/(N-1);
		fprintf(fp, "<path d=\"");
		bool first = true;
		for(j=0;j<M;++j)	{
			const double v = miv + (mav-miv)*double(j)/(M-1);
			double x = v*exp( u); double y = v*exp(-u);
			x =       x*S+B;      y = DIMY-(y*S+B);
			if(x>=B && x<=DIMX-B && y>=B && y<=DIMY-B ) {
				if(first) fprintf(fp,"M ");
				else      fprintf(fp,"L ");
				fprintf(fp,"%g %g ",x,y);
				first = false;
			}
		}
		fprintf(fp,"\"/>\n");
	}

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

	fclose(fp);
}

ترخيص

أنا، صاحب حقوق التأليف والنشر لهذا العمل، أنشر هذا العمل تحت الرخص التالية:
GNU head يسمح نسخ وتوزيع و/أو تعديل هذه الوثيقة تحت شروط رخصة جنو للوثائق الحرة، الإصدار 1.2 أو أي إصدار لاحق تنشره مؤسسة البرمجيات الحرة؛ دون أقسام ثابتة ودون نصوص أغلفة أمامية ودون نصوص أغلفة خلفية. نسخة من الرخصة تم تضمينها في القسم المسمى GNU Free Documentation License.
w:ar:مشاع إبداعي
نسب العمل إلى مُؤَلِّفه
يحقُّ لك:
  • مشاركة العمل – نسخ العمل وتوزيعه وبثُّه
  • إعادة إنتاج العمل – تعديل العمل
حسب الشروط التالية:
  • نسب العمل إلى مُؤَلِّفه – يلزم نسب العمل إلى مُؤَلِّفه بشكل مناسب وتوفير رابط للرخصة وتحديد ما إذا أجريت تغييرات. بالإمكان القيام بذلك بأية طريقة معقولة، ولكن ليس بأية طريقة تشير إلى أن المرخِّص يوافقك على الاستعمال.
لك أن تختار الرخصة التي تناسبك.

الشروحات

أضف شرحاً من سطر واحد لما يُمثِّله هذا الملف

العناصر المصورة في هذا الملف

يُصوِّر

١٣ مايو 2008

تاريخ الملف

اضغط على زمن/تاريخ لرؤية الملف كما بدا في هذا الزمن.

زمن/تاريخصورة مصغرةالأبعادمستخدمتعليق
حالي٠٩:١٤، ١٣ مايو ٢٠٠٨تصغير للنسخة بتاريخ ٠٩:١٤، ١٣ مايو ٢٠٠٨٨٠٠ × ٨٠٠ (٢٠ كيلوبايت)wikimediacommons>Rocchini{{Information |Description= Hyperbolic coordinates grip on I cartesian quadrant |Source=self-made |Date=2008-05-13 |Author= Rocchini |Permission=CC-BY 3.0 }}

الصفحة التالية تستخدم هذا الملف: