Файл:Uniaxial.png
Матеріал з testwiki
Перейти до навігації
Перейти до пошуку
Розмір при попередньому перегляді: 240 × 600 пікселів. Інші роздільності: 96 × 240 пікселів | 192 × 480 пікселів.
Повна роздільність (800 × 2000 пікселів, розмір файлу: 26 КБ, MIME-тип: image/png)
Цей файл з Вікісховища і може використовуватися в інших проєктах. Далі наведена інформація з його сторінки опису.
Ця діаграма має бути конвертована у векторний формат SVG. Це дає декілька переваг, докладніше про які Ви можете прочитати на сторінці Commons:Media for cleanup. Якщо Вам вже зараз доступна векторна версія даного зображення, завантажте її, будь ласка. Після завантаження замініть цей шаблон на такий: {{vector version available|Назва_завантаженого_файлу.svg}}.
|
Опис файлу
- Author: en:user:AndrewKepert
- Toolchain: MetaPost and TeX.
- Source: below
- Description: Illustration of a typical member of each of 7 infinite families of 3D point groups.
- Destination: en:Point groups in three dimensions.
- Permission: GFDL / CC
Source code
Instructions: on a system with a modern TeTeX or similar installed save the following two files, then run
mpost uniaxial && pdftex uniaxial
You will then need to use ghostscript or similar to make a raster image out of the pdf.
Source code author: en:user:AndrewKepert
Source code license: GPL
Сирцевий код
InfoField
PostScript code
picture pic[];
pair pt[],pt[]n,pt[]e,pt[]w,pt[]s,pt[]ne,pt[]nw,pt[]se,pt[]sw;
pair ux,uy,uz;
path unitcircle; unitcircle=fullcircle scaled 2;
boolean front[];
color colour[];
path p[];
u=16;
ux=.4*down*u;
uy=right*2u;
uz=up*.5u;
transform xyplane[];
(0,0) transformed xyplane0 = (0,0);
(1,0) transformed xyplane0 = ux;
(0,1) transformed xyplane0 = uy;
for i = -1 step 1/16 until 1:
xyplane[i]=xyplane[0] shifted (i*uz);
endfor
theta=10;
alpha=8;
N:=6;
for i = -1 step .5 until N+1:
pt[i] = right rotated theta rotated (360i/N) transformed xyplane0;
front[i]= ypart pt[i] < ypart xyplane0;
pt[i]e = right rotated (theta+alpha) rotated (360i/N) transformed xyplane0;
pt[i]w = right rotated (theta-alpha) rotated (360i/N) transformed xyplane0;
pt[i]n = right rotated theta rotated (360i/N) transformed xyplane[.75];
pt[i]ne = right rotated (theta+alpha) rotated (360i/N) transformed xyplane[.75];
pt[i]nw = right rotated (theta-alpha) rotated (360i/N) transformed xyplane[.75];
pt[i]s = right rotated theta rotated (360i/N) transformed xyplane[-.75];
pt[i]se = right rotated (theta+alpha) rotated (360i/N) transformed xyplane[-.75];
pt[i]sw = right rotated (theta-alpha) rotated (360i/N) transformed xyplane[-.75];
endfor
t0=directiontime uz of (unitcircle transformed xyplane0);
t1=directiontime -uz of (unitcircle transformed xyplane0);
t2=t0+length unitcircle;
path backface,frontface;
backface:=(subpath (t0,t1) of unitcircle transformed xyplane[1])
-- (subpath (t1,t0) of unitcircle transformed xyplane[-1])
-- cycle;
frontface:= (subpath (t1,t2) of unitcircle transformed xyplane[1])
-- (subpath (t2,t1) of unitcircle transformed xyplane[-1])
-- cycle;
colour0:=(.8,.85,1);
colour1:=.8[black,colour0];
colour2:=.6[black,colour1];
def constructribbon(expr delta)=
% stuff on back face
pic1:=image( for i = 0 step delta until N-eps: if not front[i]: fill p[i]; fi endfor
fill (subpath (t0,t1) of unitcircle transformed xyplane[1/16])
-- (subpath (t1,t0) of unitcircle transformed xyplane[-1/16])
-- cycle;);
% stuff on front face
pic2:=image( for i = 0 step delta until N-eps: if front[i]: fill p[i]; fi endfor
fill (subpath (t1,t2) of unitcircle transformed xyplane[1/16])
-- (subpath (t2,t1) of unitcircle transformed xyplane[-1/16])
-- cycle;);
% all of back face
pic0:=image(fill frontface withcolor colour0;
fill backface withcolor colour1;
draw pic1 withcolor colour2);
fill backface withcolor colour0;
fill frontface withcolor colour0;
draw pic1;
clip pic0 to frontface;
draw pic0;
draw pic2;
draw unitcircle transformed xyplane[1] withpen pencircle scaled 0.2 withcolor colour1;
draw subpath (t2,t1) of unitcircle transformed xyplane[-1] withpen pencircle scaled 0.2 withcolor colour1;
enddef;
beginfig(1)
for i=0 upto N-1:
p[i]:= pt[i]--pt[i]w--pt[i]ne--pt[i]e--cycle;
endfor
constructribbon(1);
endfig;
beginfig(2)
for i=0 upto N-1:
p[i]:= pt[i]w--pt[i]ne--pt[i]se--cycle ;
endfor
constructribbon(1);
endfig;
beginfig(3)
for i=0 upto N-1:
p[i]:= pt[i]--pt[i]e--pt[i]n--pt[i]w--cycle ;
endfor
constructribbon(1);
endfig;
beginfig(4)
for i=0 upto N-1:
%p[i]:= pt[i]--pt[i]ne--pt[i]e--pt[i]--pt[i]sw--pt[i]w--cycle ;
p[i]:= pt[i]ne--pt[i]e-- pt[i]sw--pt[i]w--cycle ;
endfor
constructribbon(1);
endfig;
beginfig(5)
for i=0 upto N-1:
p[i]:= pt[i]n--pt[i]e--pt[i]s--pt[i]w--cycle ;
endfor
constructribbon(1);
endfig;
beginfig(6)
for i=0 upto N-1:
p[i]:= pt[i]--pt[i]e--pt[i]n--pt[i]w--cycle ;
p[i+.5]:= pt[i+.5]--pt[i+.5]e--pt[i+.5]s--pt[i+.5]w--cycle ;
endfor
constructribbon(1/2);
endfig;
beginfig(7)
for i=0 upto N-1:
if odd i:
p[i]:= pt[i]--pt[i]w--pt[i]ne--pt[i]e--cycle;
else:
p[i]:= pt[i]--pt[i]w--pt[i]se--pt[i]e--cycle;
fi
endfor
constructribbon(1);
endfig;
bye
Data
\input supp-pdf
{\tabskip=5pt \lineskiplimit=5pt \lineskip=\lineskiplimit
\halign{\hfil#\hfil&\hfil$\vcenter{\convertMPtoPDF{#}{1}{1}}$\hfil\cr
$C_6$&uniaxial.1\cr
$C_{6h}$&uniaxial.2\cr
$C_{6v}$&uniaxial.3\cr
$D_6$&uniaxial.4\cr
$D_{6h}$&uniaxial.5\cr
$D_{6d}$&uniaxial.6\cr
$S_6$&uniaxial.7\cr
}
}
\bye
Ліцензування
Я, власник авторських прав на цей твір, добровільно публікую його на умовах таких ліцензій:
| Дозволяється копіювати, розповсюджувати та/або модифікувати цей документ на умовах ліцензії GNU FDL версії 1.2 або більш пізньої, виданої Фондом вільного програмного забезпечення, без незмінних розділів, без текстів, які розміщені на першій та останній обкладинці. Копія ліцензії знаходиться у розділі GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
| Цей файл ліцензований на умовах ліцензії Creative Commons Attribution-Share Alike 3.0 Unported | ||
| ||
| Цей шаблон ліцензування був доданий до файлу в рамках оновлення ліцензії GFDL.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
Цей файл доступний на умовах ліцензій Creative Commons Attribution-Share Alike 2.5 Generic, 2.0 Generic та 1.0 Generic.
- Ви можете вільно:
- ділитися – копіювати, поширювати і передавати твір
- модифікувати – переробляти твір
- При дотриманні таких умов:
- зазначення авторства – Ви повинні вказати авторство, надати посилання на ліцензію і вказати, чи якісь зміни було внесено до оригінального твору. Ви можете зробити це в будь-який розсудливий спосіб, але так, щоб він жодним чином не натякав на те, наче ліцензіар підтримує Вас чи Ваш спосіб використання твору.
- поширення на тих же умовах – Якщо ви змінюєте, перетворюєте або створюєте іншу похідну роботу на основі цього твору, ви можете поширювати отриманий у результаті твір тільки на умовах такої ж або сумісної ліцензії.
Ви можете обрати ліцензію на ваш розсуд.
Підписи
Додайте однорядкове пояснення, що саме репрезентує цей файл
Об'єкти, показані на цьому файлі
зображує
Історія файлу
Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.
| Дата/час | Мініатюра | Розмір об'єкта | Користувач | Коментар | |
|---|---|---|---|---|---|
| поточний | 09:28, 5 липня 2006 | 800 × 2000 (26 КБ) | wikimediacommons>AndrewKepert~commonswiki | Author: user:en:AndrewKepert Toolchain: MetaPost and TeX. Source: will be uploaded Description: Illustration of a typical member of each of 7 infinite families of 3D point groups. Destination: en:Point groups in three dimensions. Permission: GF |
Використання файлу
Така сторінка використовує цей файл: