Image:Uniaxial.png

From Wikipedia, the free encyclopedia

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.
Commons is a freely licensed media file repository. You can help.

Contents

[edit] Summary

[edit] 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

[edit] MetaPost source file uniaxial.mp

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


[edit] TeX source file uniaxial.tex

\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

[edit] Licensing

I, the copyright holder of this work, hereby publish it under the following licenses:
GNU head Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation license, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation license".

Aragonés | العربية | Asturianu | Български | বাংলা | ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী | Brezhoneg | Bosanski | Català | Cebuano | Česky | Dansk | Deutsch | Ελληνικά | English | Esperanto | Español | Eesti | Euskara | فارسی | Suomi | Français | Gaeilge | Galego | עברית | Hrvatski | Magyar | Bahasa Indonesia | Ido | Íslenska | Italiano | 日本語 | ქართული | ភាសាខ្មែរ | 한국어 | Kurdî / كوردی | Latina | Lëtzebuergesch | Lietuvių | Bahasa Melayu | Nnapulitano | Nederlands | ‪Norsk (nynorsk)‬ | ‪Norsk (bokmål)‬ | Occitan | Polski | Português | Română | Русский | Slovenčina | Slovenščina | Shqip | Српски / Srpski | Svenska | తెలుగు | ไทย | Türkçe | Українська | اردو | Tiếng Việt | Volapük | Yorùbá | ‪中文(中国大陆)‬ | ‪中文(台灣)‬ | +/-

Some rights reserved
Creative Commons Attribution iconCreative Commons Share Alike icon
This file is licensed under the Creative Commons Attribution ShareAlike license versions 2.5, 2.0, and 1.0

العربية | Български | Català | Česky | Dansk | Deutsch | English | Español | Euskara | فارسی | Français | עברית | Italiano | 日本語 | 한국어 | Lietuvių | Nederlands | Polski | Português | Русский | Svenska | தமிழ் | Türkçe | 中文 | 中文 | +/-

You may select the license of your choice.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeDimensionsUserComment
current08:28, 5 July 2006800×2,000 (26 KB)AndrewKepert (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)
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):