#
# 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
syntax highlighted by Code2HTML, v. 0.9.1