マーカー列を描くポリマーカープリミティブには, 次の3つの属性があります.
   
まず最初のフレームですが, 第3.1節で見たように, 単に sgpmv ルーチンを呼ぶと初期値である・のマーカー列が描かれます.  28行め   
の sgspmt ルーチンでマーカータイプを2から7まで変えると, +,   
*, 。 と順に異なるマーカー列が上から下へと描かれていきます.    
巻末付録のフォントテーブルにあるマーク・記号・文字などには, それぞれ   
DCL文字番号が与えられていますが, ここでは sgspmt で与えるDCL文字   
番号に対応するマーカー列が描かれているのです. たとえばitype=152    
のとき, α のマーカー列を描きます.  
  
  
  
  
次のフレームではマーカーの大きさを変えています. 初期値はV-座標系におけ   
る単位で 0.01 です. 2番めからは, sgspms ルーチンで大きさを    
0.005, 0.01, 0.015, …,   
0.03 と変えた結果です. 塗りつぶしたような   
マーカーもどんどん大きくしていくと, いくつかの線分で構成されていること   
が見えてきます. このような時には, sgspmi ルーチンで描くマーカー   
のラインインデクスを大きくしておくと, 線が太くなって塗りつぶした雰囲気   
が出てきます.   
   
   
   
 
   
 
   
# kihon3.rb
require "narray"
require "numru/dcl"
include NumRu
include Math
nmax = 40
imax = 7
dt = 4.0*PI/nmax
x = NArray.sfloat(nmax+1)
y = NArray.sfloat(nmax+1, imax)
#-- data ----
x = x.indgen * 1.0/nmax
for n in 0..nmax
  for i in 0..imax-1
    y[n,i] = 0.2*sin(n*dt) + 0.8 - 0.1*i
  end
end
#-- graph ----
iws = (ARGV[0] || (puts ' WORKSTATION ID (I)  ? ;'; DCL::sgpwsn; gets)).to_i
DCL::sgopn iws
#-- marker type : frame 1 --
DCL::sgfrm
DCL::slpvpr(1) 
DCL::sgpmv(x, y[true,0])
for i in 1..imax-1
  itype = i + 1
  DCL::sgspmt(itype)
  DCL::sgpmv(x, y[true,i])
end
#-- marker size : frame 2 --
DCL::sgfrm
DCL::slpvpr(1) 
DCL::sgspmt(10)
DCL::sgpmv(x, y[true,0])
for i in 1..imax-1
  rsize = 0.005*i
  DCL::sgspms(rsize)
  DCL::sgpmv(x, y[true,i])
end
DCL::sgcls