# # kihona.rb # $Id: kihona.rb,v 1.2 2000/11/18 19:03:34 keiko Exp $ # require "narray" require "numru/dcl" include NumRu include NMath nmax = 40 xmin = 0.0 xmax = 4*PI ymin = -1.0 ymax = 1.0 x = NArray.sfloat(nmax+1) y = NArray.sfloat(nmax+1) #-- data --- dt = xmax/nmax x = x.indgen * dt y = sin(x) #-- graph --- iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i DCL::sgopn iws DCL::sgfrm DCL::sglset('LCHAR', true) #-- ラベルつき折れ線 ---- DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, 0.9, 1.0) DCL::sgstrn(1) DCL::sgstrf DCL::sgsplc('A') DCL::sgsplt(1) DCL::sgplu(x, y) #-- 順序ラベル: A,B,C,... ---- for i in 1..2 vymin = 0.9 - 0.1*i vymax = vymin + 0.1 DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, vymin, vymax) DCL::sgstrn(1) DCL::sgstrf DCL::sgnplc DCL::sgplu(x, y) end #-- 順序ラベル: K=1,K=2,... ---- DCL::sgsplc('K=1') for i in 3..4 vymin = 0.9 - 0.1*i vymax = vymin + 0.1 DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, vymin, vymax) DCL::sgstrn(1) DCL::sgstrf DCL::sgsplt(i-1) DCL::sgplu(x, y) DCL::sgnplc end DCL::sgsplt(1) #-- ラベルの文字列の高さ ---- DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, 0.4, 0.5) DCL::sgstrn(1) DCL::sgstrf DCL::sgspls(0.01) DCL::sgsplc('small') DCL::sgplu(x, y) DCL::sgspls(0.02) #-- ラベルの角度 ---- DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, 0.3, 0.4) DCL::sgstrn(1) DCL::sgstrf DCL::sglset('LROT', true) DCL::sgiset('IROT', 90) DCL::sgsplc('ROT') DCL::sgplu(x, y) DCL::sglset('LROT', false) #-- ラベルの間隔 ---- DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, 0.2, 0.3) DCL::sgstrn(1) DCL::sgstrf DCL::sgrset('CWL', 5.0) DCL::sgsplc('CWL') DCL::sgplu(x, y) DCL::sgrset('CWL', 30.0) #-- ラベルの書き始め ---- DCL::sgswnd(xmin, xmax, ymin, ymax) DCL::sgsvpt(0.0, 1.0, 0.1, 0.2) DCL::sgstrn(1) DCL::sgstrf DCL::sgrset('FFCT', 0.9) DCL::sgsplc('FCT') DCL::sgplu(x, y) DCL::sgcls