PostScriptで分子を描く

ベクターグラフィックは、説明の目的に最適です。分子は、結合によって結合された原子で構成されています。化学構造の図面を編集する操作を、分子の物理的構造に従って実行してほしい:原子を選択し、転送し、分子のフラグメントを回転させ、署名する...原子構造のほとんどすべてのビジュアライザーがエクスポートするラスターへのビュー。これにより、イラストの準備が複雑になります。この投稿では、3D構造をベクター形式でレンダリングする方法と、PostScriptがこれをどのように支援できるかについて説明します





きれいなビットマップ画像(左)の代わりに、ビンテージのイラスト(右)を取得します。
きれいなビットマップ画像(左)の代わりに、ビンテージのイラスト(右)を取得します。

SVG、PDF、EPSなど、非常に多くのプログラムが構造をベクターグラフィックスにエクスポートできます。ただし、これは正式に行われることがよくあります。結果の画像は多くのプリミティブで構成されており、原子や結合によってそれらを分解することはほとんど不可能です。そのようなベクターファイルのサイズも大きい、つまり、それは惨事です。多くの分子コンストラクターのうち、GaussViewMoldenの2つだけベクター画像コードの品質満たしています後者のプログラムは誰でも利用できるため、例はその助けを借りて作成されていますが、以下のすべてのレシピは、GaussViewプログラムによって作成されたベクターイラストに(いくつかの変更を加えて)適用できます。だからモルデン!





モルデン
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プリミティブ
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
      
      



4082の代わりに410のプリミティブがすでにあります。
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
      
      



このコードは、図面を根本的に白黒に縮小します。古い本のように。





署名を追加しました-水素結合の長さ。
署名を追加しました-水素結合の長さ。

結論

PostScriptは、イラストの作成に驚くほど優れています。学ぶのは簡単です。この投稿では、会議の出版物やポスターを準備するときに、簡単ですが、時には非常に必要なことを行う方法を紹介しました。ただし、さらに先に進むことができます。数学イラストの本を強くお勧めします。








All Articles