#
# sgpk03.rb
#
# $Id: sgpk03.rb,v 1.1 2000/11/21 03:02:07 keiko Exp $
#

require "narray"
require "numru/dcl"

include NumRu
include NMath

n = 41
x = NArray.sfloat(n)
y = NArray.sfloat(n)

#-- data ---
dt = 4.0* 3.14159 / (n-1)
x = x.indgen * (1.0/(n-1))
y = y.indgen * dt
y = sin(y) * 0.15
#-- graph ---
iws = (ARGV[0] || (puts ' WORKSTATION ID (I)  ? ;'; DCL::sgpwsn; gets)).to_i
DCL::sgopn iws

#----------------------------- page 1 ---------------------------------
DCL::sgfrm

DCL::sgswnd(0.0, 1.0, -0.8, 0.2)
DCL::sgsvpt(0.15, 0.85, 0.1, 0.9)
DCL::sgstrn(1)
DCL::sgstrf
DCL::slpvpr(1)
DCL::sgplu(x, y)                   # <-- 1本目

DCL::sgswnd(0.0, 1.0, -0.7, 0.3)
DCL::sgstrf
DCL::sgspli(2)                        # <-- line index 設定
DCL::sgplu(x, y)                   # <-- 2本目

DCL::sgswnd(0.0, 1.0, -0.6, 0.4)
DCL::sgstrf
DCL::sgspli(3)                        # <-- line index 設定
DCL::sgplu(x, y)                   # <-- 3本目

DCL::sgswnd(0.0, 1.0, -0.4, 0.6)
DCL::sgstrf
DCL::sgsplt(2)                        # <--linetype設定(破線)
DCL::sgplu(x, y)                   # <-- 4本目

DCL::sgswnd(0.0, 1.0, -0.3, 0.7)
DCL::sgstrf
DCL::sgsplt(3)                        # <--linetype設定(点線)
DCL::sgplu(x, y)                   # <-- 5本目

DCL::sgswnd(0.0, 1.0, -0.2, 0.8)
DCL::sgstrf
DCL::sgsplt(4)                        # <--linetype設定(一点鎖線)
DCL::sgplu(x, y)                   # <-- 6本目

#----------------------------- page 2 ---------------------------------
DCL::sgfrm

DCL::sgswnd(0.0, 1.0, -0.8, 0.2)
DCL::sgsvpt(0.15, 0.85, 0.1, 0.9)
DCL::sgstrn(1)
DCL::sgstrf
DCL::slpvpr(1)

DCL::sgrset('bitlen', 0.006)          # <-- サイクル長の変更
DCL::sgsplt(4)
DCL::sgplu(x, y)                   # <-- 1本目

DCL::sgswnd(0.0, 1.0, -0.6, 0.4)
DCL::sgstrf
DCL::sgspli(2)

itype = '0b1111111100100100'.oct # <-- パターン生成
DCL::sgsplt(itype)                    # <-- パターン設定
DCL::sgplu(x, y)                   # <-- 2本目

DCL::sgswnd(0.0, 1.0, -0.4, 0.6)
DCL::sgstrf
DCL::sgiset('NBITS', 32)
itype = '0b10010010011111000111110001111100'.oct - ("0b1" + "0"*32).oct
DCL::sgsplt(itype)
DCL::sgplu(x, y)

DCL::sgswnd(0.0, 1.0, -0.2, 0.8)
DCL::sgstrf
DCL::sgspli(1)
DCL::sgsplt(1)

n1=n/4
y[n1-2] = 999.0                  # <-- 欠損値
y[n1-1] = 999.0
y[n1  ] = 999.0

n2=n1*3
y[n2-2] = 999.0
y[n2  ] = 999.0

DCL::gllset('LMISS', true)
DCL::sgplu(x, y)                   # <-- 4本目

DCL::sgcls



syntax highlighted by Code2HTML, v. 0.9.1