Moleküle mit PostScript zeichnen

Vektorgrafiken eignen sich hervorragend zur Veranschaulichung. Moleküle bestehen aus Atomen, die durch Bindungen verbunden sind. Ich möchte, dass die Bearbeitung einer Zeichnung einer chemischen Struktur gemäß der physikalischen Struktur von Molekülen ausgeführt wird: Wählen Sie ein Atom aus, übertragen Sie es, drehen Sie ein Fragment eines Moleküls, signieren Sie ... Fast alle Visualisierer von Atomstrukturen exportieren der Blick auf ein Raster, was die Erstellung von Illustrationen erschwert. In diesem Beitrag werde ich erklären, wie 3D-Strukturen im Vektorformat gerendert werden und wie PostScript Ihnen dabei helfen kann .





Anstelle eines hübschen Bitmap-Bildes (links) erhalten wir eine Vintage-Illustration (rechts).
Anstelle eines hübschen Bitmap-Bildes (links) erhalten wir eine Vintage-Illustration (rechts).

Viele Programme können Strukturen in Vektorgrafiken exportieren: SVG, PDF, EPS. Dies geschieht jedoch oft nur formal - die resultierenden Bilder bestehen aus vielen Grundelementen, es ist fast unmöglich, sie durch Atome und Bindungen zu zerlegen. Die Größe einer solchen Vektordatei ist ebenfalls groß, kurz gesagt, es ist eine Katastrophe. Von den vielen molekularen Konstruktoren erfüllen nur zwei die Qualität des Vektorbildcodes: GaussView und Molden . Das letztere Programm steht jedem zur Verfügung, daher werden die Beispiele mit seiner Hilfe erstellt. Alle folgenden Rezepte gelten jedoch (mit einigen Änderungen) für die vom GaussView-Programm erstellten Vektorabbildungen. Also Molden!





Molden
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 . .





4082 Grundelemente
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
      
      



Es gibt bereits 410 Grundelemente anstelle von 4082.
410 4082.

!





/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
      
      



Dieser Code reduziert die Zeichnung radikal auf Schwarzweiß. Wie in alten Büchern.





Ich habe eine Signatur hinzugefügt - die Länge der Wasserstoffbrücke.
Ich habe eine Signatur hinzugefügt - die Länge der Wasserstoffbrücke.

Fazit

PostScript ist überraschend gut darin, Illustrationen zu erstellen. Es ist leicht zu lernen. In diesem Beitrag habe ich eine Möglichkeit gegeben, einfache, aber manchmal sehr, sehr notwendige Dinge zu tun, wenn ich eine Veröffentlichung oder ein Poster für eine Konferenz vorbereite. Sie können jedoch noch weiter gehen! Ich kann das Buch Mathematical Illustrations nur empfehlen .








All Articles