Перейти на страницу файла на Викискладе

Файл:Hepteract ortho petrie.svg

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Исходный файл(SVG-файл, номинально 800 × 800 пкс, размер файла: 29 Кб)

Краткое описание

Описание
English: Orthographic projection of hepteract making the petrie polygon
Дата
Источник Собственная работа
Автор Claudio Rocchini

Source code

void main()
{
     const int ND = 7; const int NV = (1<<ND); const int NE = 448;
     double v[NV][ND]; int e[NE][2];
	double PX[ND] = {
	 0.09903113209758096500,
     0.27747906604368522000,
     0.40096886790241926000,
     0.44504186791262867000,
     0.40096886790241915000,
     0.27747906604368555000,
     0.09903113209758096500};
	double PY[ND] = {
    
    -0.43388373911755806000,
    -0.34794774335047168000,
    -0.19309642971379370000,
    -0.00000000000000011102,
     0.19309642971379370000,
     0.34794774335047168000,
     0.43388373911755823000};
	double px[NV]; double py[NV];

	int i,j,k,l;

	for(i=0;i<NV;++i) for(j=0;j<ND;++j) v[i][j] = (i>>j)&1 ? -0.5 : 0.5;

	l = 0;
	for(i=0;i<NV-1;++i) for(j=i+1;j<NV;++j) {
		double d = 0;
		for(k=0;k<ND;++k) d += (v[i][k]-v[j][k])*(v[i][k]-v[j][k]);
		d = sqrt(d);
		if(d==1) { e[l][0]=i; e[l][1]=j; ++l;}
	}
	assert(l==NE);
	for(i=0;i<NV;++i){
		px[i] = 0; for(l=0;l<ND;++l) px[i] += v[i][l]*PX[l];
		py[i] = 0; for(l=0;l<ND;++l) py[i] += v[i][l]*PY[l];
	}
	
	const double SX = 800; const double SY = 800;
	const double B  = 32;  const double R  = 5;
	
	const double sca  = std::min((SX-2*B)/2,(SY-2*B)/2);
	for(i=0;i<NV;++i) { px[i] = B+(px[i]+1)*sca; py[i] = B+(py[i]+1)*sca; }

	FILE * fp = fopen("c:\\temp\\HepteractPetrie.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=\"HepteractPetrie\">\n"
		,SX,SY
	);
	fprintf(fp,"<g style=\"stroke:#000000;stroke-width:2;stroke-opacity:0.75;\">\n");
	for(i=0;i<NE;++i)
		fprintf(fp,
			"<line x1=\"%5.1lf\" y1=\"%5.1lf\" x2=\"%5.1lf\" y2=\"%5.1lf\"/>\n"
			,px[e[i][0]],py[e[i][0]], px[e[i][1]],py[e[i][1]]
		);
	fprintf(fp,"</g>\n");
	fprintf(fp,"<g style=\"stroke:#000000;stroke-width:2;stroke-opacity:0.75;fill:#0080FF\">\n");
	for(i=0;i<NV;++i)
		fprintf(fp,"<circle cx=\"%5.1lf\" cy=\"%5.1lf\" r=\"%5.1lf\"/>\n",px[i],py[i],R);
	fprintf(fp,"</g>\n");
	fprintf(fp,"</svg>\n");
	fclose(fp);

Лицензирование

Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
GNU head Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.2 или более поздней, опубликованной Фондом свободного программного обеспечения, без неизменяемых разделов, без текстов, помещаемых на первой и последней обложке. Копия лицензии включена в раздел, озаглавленный GNU Free Documentation License.
w:ru:Creative Commons
атрибуция
Этот файл доступен по лицензии Creative Commons Attribution 3.0 Unported
Вы можете свободно:
  • делиться произведением – копировать, распространять и передавать данное произведение
  • создавать производные – переделывать данное произведение
При соблюдении следующих условий:
  • атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
Вы можете выбрать любую из этих лицензий.

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

У этого свойства есть некоторое значение без элемента в

История файла

Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий13:13, 1 августа 2008Миниатюра для версии от 13:13, 1 августа 2008800 × 800 (29 Кб)Rocchini{{Information |Description={{en|1=Orthographic projection of hepteract making the petrie polygon}} |Source=Opera creata dall'uploader (own work by uploader) |Author=Claudio Rocchini |Date=2008-08-01 |Permission= |other_versions= }} {{Im

Следующая страница использует этот файл:

Глобальное использование файла

Данный файл используется в следующих вики: