Os gráficos vetoriais são ótimos para fins ilustrativos. As moléculas são constituídas por átomos ligados por ligações. Gostaria que as operações de edição de um desenho de uma estrutura química fossem realizadas de acordo com a estrutura física das moléculas: selecionar um átomo, transferi-lo, girar um fragmento de uma molécula, assinar ... Quase todos os visualizadores de estruturas atômicas exportam a vista para um raster, o que dificulta a preparação das ilustrações. Nesta postagem, explicarei como renderizar estruturas 3D em formato vetorial e como o PostScript pode ajudá-lo com isso .
Muitos programas são capazes de exportar estruturas para gráficos vetoriais: SVG, PDF, EPS. No entanto, isso geralmente é feito apenas formalmente - as imagens resultantes consistem em muitos primitivos, é quase impossível desmontá-los por átomos e ligações. O tamanho desse arquivo vetorial também é grande, em uma palavra, é um desastre. Dos muitos construtores moleculares, apenas dois satisfazem a qualidade do código da imagem vetorial: GaussView e Molden . O último programa está disponível para todos, portanto os exemplos são construídos com a sua ajuda, no entanto, todas as receitas abaixo são aplicáveis (com algumas modificações) às ilustrações vetoriais feitas pelo programa GaussView. Então, 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
Este código irá reduzir radicalmente o desenho a preto e branco. Como em livros antigos.
Conclusão
PostScript é surpreendentemente bom na criação de ilustrações. É fácil aprender. Neste post, dei uma maneira de fazer coisas simples, mas às vezes muito, muito necessárias ao preparar uma publicação ou pôster para uma conferência. No entanto, você pode ir mais longe! Eu recomendo fortemente o livro Ilustrações Matemáticas .