Les graphiques vectoriels sont parfaits à des fins d'illustration. Les molécules sont constituées d'atomes liés par des liaisons. Je souhaiterais que les opérations d'édition d'un dessin d'une structure chimique soient effectuées en fonction de la structure physique des molécules: sélectionner un atome, le transférer, faire pivoter un fragment de molécule, signer ... Presque tous les visualiseurs de structures atomiques exportent la vue sur un raster, ce qui complique la préparation des illustrations. Dans cet article, je vais vous expliquer comment rendre des structures 3D au format vectoriel et comment PostScript peut vous y aider .
De nombreux programmes sont capables d'exporter une structure vers des graphiques vectoriels: SVG, PDF, EPS. Cependant, cela n'est souvent fait que formellement - les images résultantes sont constituées de nombreux primitifs, il est presque impossible de les démonter par des atomes et des liaisons. La taille d'un tel fichier vectoriel est également importante, en un mot, c'est un désastre. Parmi les nombreux constructeurs moléculaires, seuls deux satisfont à la qualité du code d' image vectorielle: GaussView et Molden . Ce dernier programme est accessible à tous, donc les exemples sont construits avec son aide, cependant, toutes les recettes ci-dessous sont applicables (avec quelques modifications) aux illustrations vectorielles réalisées par le programme GaussView. Alors Molden!
, PostScript.
PostScript
:
%!PS-Adobe-2.0 EPSF-2.0
%%Title: Molden
%%For: Schaft
%%Creator: Drs G Schaftenaar
%%DocumentFonts: Courier
%%Pages (atend)
%%BoundingBox: 0 0 612 792
%%EndComments
%
%###### User Preferences ############
%
%---- SIZE AND ORIENTATION OF THE PLOT ---
%
/size { 0.24 } def
%---- These number can be negative -------
/originx { 39.0 } def
/originy { 753.0 } def
/angle { -90.0 } def
%For Portrait use
%/originx { 40.0 } def
%/originy { 240.0 } def
%/angle { 0.0 } def
%and BoundingBox: 25 255 535 765
- \doatom
, - \dorod
. Molden.
%---- Include Tabel & Logo, Fontsize -----
/tabel {true} def
/titleandlogo {true} def % false!
, 4082 . .
.
%---- SET BOND RENDERING: ---------------
%---- shadedrod, whiterod, blackrod -----
%
/doatom { dosketchysmoothatom } def
/dorod { sketchyshadedrod } def
%
% ( )
/dosketchysmoothatom % doatom
{ gsave
rx ry translate
90 -15 1 % 90 1 1 -
{ gsave
dup cos hue exch satu exch sethsbcolor sin dup scale
newpath
0 0 rad 0 360 arc
closepath fill grestore } for
grestore } def
/sketchyshadedrod
{ gsave
x1 y1 translate
x2 x1 neg add
y2 y1 neg add
{atan neg rotate} stopped not {
85 -15 0 % 87 -3 0 -
{dup
gsave
newpath
cos 1.0 cosb 0.5 mul neg add mul
hue exch satu exch sethsbcolor
sin 1.0 scale
1 cosb scale
0 0 hd 0 180 arcn
x2 x1 neg add dup mul
y2 y1 neg add dup mul
add sqrt
0 cosb eq {/cosb 1.0 def} if 0 exch cosb div translate
0 0 hd 180 360 arc
closepath fill
grestore } for
} if
grestore } def
!
/doatom { docirclecoloratom } def
/dorod { dostick } def
% , ,
/stickwidth {16} def
/stickgreycolor {0} def
/strokelinewidth {4} def
/docirclecoloratom
{ gsave
strokelinewidth setlinewidth
rx ry translate
newpath 0 0 rad 0 360 arc closepath
gsave
hue satu 1.0 sethsbcolor fill
grestore
stroke
0 0 rad 0.75 mul -60 0 arc
stroke
grestore
} def
% dostick Molden
:
, . - 3 . , , . - . .
/docircleatom
{ gsave
strokelinewidth setlinewidth
rx ry translate
newpath 0 0 rad 0 360 arc closepath
gsave
1 setgray fill
grestore
stroke
gsave
1.00 0.55 scale
0 0 rad 0 180 arc
stroke
grestore
0.55 1.00 scale
0 0 rad -90 90 arcn
stroke
grestore
} def
Ce code réduira radicalement le dessin en noir et blanc. Comme dans les vieux livres.
Conclusion
PostScript est étonnamment efficace pour créer des illustrations. C'est facile à apprendre. Dans cet article, j'ai donné un moyen de faire des choses simples, mais parfois très, très nécessaires lors de la préparation d'une publication ou d'une affiche pour une conférence. Cependant, vous pouvez aller plus loin! Je recommande vivement le livre Illustrations mathématiques .