DISLIN Examples / Ruby
Demonstration of CURVE / Ruby
#!/usr/bin/ruby require 'dislin' n = 101 pi = 3.1415926 f = pi / 180.0 step = 360.0 / (n - 1) xray = Array.new(n) y1ray = Array.new(n) y2ray = Array.new(n) for i in 0..n-1 xray[i] = i * step x = xray[i] * f y1ray[i] = Math.sin(x) y2ray[i] = Math.cos(x) end Dislin.metafl('xwin') Dislin.scrmod('revers') Dislin.disini() Dislin.complx() Dislin.pagera() Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.axspos(450, 1800) Dislin.axslen(2200, 1200) Dislin.labdig(-1, 'X') Dislin.ticks(10, 'XY') Dislin.titlin('Demonstration of CURVE', 1) Dislin.titlin('SIN (X), COS (X)', 3) ic = Dislin.intrgb(0.95, 0.95, 0.95) Dislin.axsbgd(ic) Dislin.graf(0.0, 360.0, 0.0, 90.0, -1.0, 1.0, -1.0, 0.5) Dislin.setrgb(0.7, 0.7, 0.7) Dislin.grid(1,1) Dislin.color('fore') Dislin.height(50) Dislin.title() Dislin.color('red') Dislin.curve(xray, y1ray, n) Dislin.color('green') Dislin.curve(xray, y2ray, n) Dislin.disfin()
Polar Plots / Ruby
#!/usr/bin/ruby require 'dislin' n = 300 m = 10 pi = 3.1415926 f = pi / 180.0 step = 360.0 / (n - 1) xray = Array.new(n) x1 = Array.new(n) y1 = Array.new(n) x2 = Array.new(m) y2 = Array.new(m) for i in 0..n-1 a = (i * step) * f xray[i] = i * step x = xray[i] * f y1[i] = a x1[i] = Math.sin(5 * a) end for i in 0..m-1 x2[i] = i + 1 y2[i] = i + 1 end Dislin.setpag('da4p') Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.complx() Dislin.pagera() Dislin.titlin('Polar Plots', 2) Dislin.ticks(3, 'Y') Dislin.axends('NOENDS', 'X') Dislin.labdig(-1, 'Y') Dislin.axslen(1000, 1000) Dislin.axsorg(1050, 900) ic = Dislin.intrgb(0.95,0.95,0.95) Dislin.axsbgd(ic) Dislin.grafp(1.0, 0.0, 0.2, 0.0, 30.0); Dislin.color('blue') Dislin.curve(x1, y1, n) Dislin.color('fore') Dislin.htitle(50) Dislin.title() Dislin.endgrf() Dislin.labdig(-1, 'X') Dislin.axsorg(1050, 2250) Dislin.labtyp('VERT', 'Y') Dislin.grafp(10.0, 0.0, 2.0, 0.0, 30.0) Dislin.barwth(-5.0) Dislin.polcrv('FBARS') Dislin.color('blue') Dislin.curve(x2, y2, m) Dislin.disfin()
Symbols / Ruby
#!/usr/bin/ruby require 'dislin' ctit = "Symbols" Dislin.setpag('da4p') Dislin.metafl('cons') Dislin.disini() Dislin.complx() Dislin.pagera() Dislin.height(60) nl = Dislin.nlmess(ctit) Dislin.messag(ctit, (2100 - nl)/2, 200) Dislin.height(50) Dislin.hsymbl(120) ny = 150 for i in 0..21 if (i % 4) == 0 ny = ny + 400 nxp = 550 else nxp = nxp + 350 end nl = Dislin.nlnumb(i, -1) Dislin.number(i, -1, nxp - nl/2, ny + 150) Dislin.symbol(i, nxp, ny) end Dislin.disfin()
Interpolation Methods / Ruby
#!/usr/bin/ruby require 'dislin' ctit = 'Interpolation Methods' xray = [0.0, 1.0, 3.0, 4.5, 6.0, 8.0, 9.0, 11.0, 12.0, 12.5, 13.0, 15.0, 16.0, 17.0, 19.0, 20.0] yray = [2.0, 4.0, 4.5, 3.0, 1.0, 7.0, 2.0, 3.0, 5.0, 2.0, 2.5, 2.0, 4.0, 6.0, 5.5, 4.0] cpol = ['SPLINE', 'STEM', 'BARS', 'STAIRS', 'STEP', 'LINEAR'] Dislin.setpag('da4p') Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.incmrk(1) Dislin.hsymbl(25) Dislin.titlin(ctit, 1) Dislin.axslen(1500, 350) Dislin.setgrf('LINE', 'LINE', 'LINE', 'LINE') ic = Dislin.intrgb(1.0, 1.0, 0.0) Dislin.axsbgd(ic) nya = 2700 for i in 0..5 Dislin.axspos(350, nya - i * 350) Dislin.polcrv(cpol[i]) Dislin.marker(0) Dislin.graf(0.0, 20.0, 0.0, 5.0, 0.0, 10.0, 0.0, 5.0) nx = Dislin.nxposn(1.0) ny = Dislin.nyposn(8.0) Dislin.messag(cpol[i], nx, ny) Dislin.color('red') Dislin.curve(xray, yray, 16) Dislin.color('fore') if i == 5 Dislin.height(50) Dislin.title() end Dislin.endgrf() end Dislin.disfin()
Bar Graphs / Ruby
#!/usr/bin/ruby require 'dislin' x = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] y = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] y1 = [1.0, 1.5, 2.5, 1.3, 2.0, 1.2, 0.7, 1.4, 1.1] y2 = [2.0, 2.7, 3.5, 2.1, 3.2, 1.9, 2.0, 2.3, 1.8] y3 = [4.0, 3.5, 4.5, 3.7, 4.0, 2.9, 3.0, 3.2, 2.6] nya = 2700 ctit = 'Bar Graphs(BARS)' Dislin.scrmod('revers') Dislin.setpag('da4p') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.ticks(1, 'x') Dislin.intax() Dislin.axslen(1600, 700) Dislin.titlin(ctit, 3) cbuf = ' ' Dislin.legini(cbuf, 3, 8) Dislin.leglin(cbuf, 'FIRST', 1) Dislin.leglin(cbuf, 'SECOND', 2) Dislin.leglin(cbuf, 'THIRD', 3) Dislin.legtit(' ') Dislin.shdpat(5) for i in 0..2 if i > 0 Dislin.labels('none','x') end Dislin.axspos(300, nya-i*800) Dislin.graf(0.0, 10.0, 0.0, 1.0, 0.0, 5.0, 0.0, 1.0) if i == 0 Dislin.bargrp(3, 0.15) Dislin.color('red') Dislin.bars(x, y, y1, 9) Dislin.color('green') Dislin.bars(x, y, y2, 9) Dislin.color('blue') Dislin.bars(x, y, y3, 9) Dislin.color('fore') Dislin.reset('bargrp') elsif i == 1 Dislin.height(30) Dislin.labels('delta','bars') Dislin.labpos('center','bars') Dislin.color('red') Dislin.bars(x, y, y1, 9) Dislin.color('green') Dislin.bars(x, y1, y2, 9) Dislin.color('blue') Dislin.bars(x, y2, y3, 9) Dislin.color('fore') Dislin.reset('height') elsif i == 2 Dislin.labels('second', 'bars') Dislin.labpos('outside', 'bars') Dislin.color('red') Dislin.bars(x, y, y1, 9) Dislin.color('fore') end if i != 2 Dislin.legend(cbuf,7) end if i == 2 Dislin.height(50) Dislin.title() end Dislin.endgrf() end Dislin.disfin()
Pie Charts / Ruby
#!/usr/bin/ruby require 'dislin' xray = [1.0, 2.5, 2.0, 2.7, 1.8] ctit = 'Pie Charts(PIEGRF)' Dislin.scrmod('revers') Dislin.setpag('da4p') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.chnpie('BOTH') Dislin.axslen(1600, 1000) Dislin.titlin(ctit, 2) cbuf = ' ' Dislin.legini(cbuf, 5, 8) Dislin.leglin(cbuf, 'FIRST', 1) Dislin.leglin(cbuf, 'SECOND', 2) Dislin.leglin(cbuf, 'THIRD', 3) Dislin.leglin(cbuf, 'FOURTH', 4) Dislin.leglin(cbuf, 'FIFTH', 5) # Selecting shading patterns Dislin.patcyc(1, 7) Dislin.patcyc(2, 4) Dislin.patcyc(3, 13) Dislin.patcyc(4, 3) Dislin.patcyc(5, 5) Dislin.axspos(250, 2800) Dislin.piegrf(cbuf, 1, xray, 5) Dislin.endgrf() Dislin.axspos(250, 1600) Dislin.labels('DATA', 'PIE') Dislin.labpos('EXTERNAL', 'PIE') Dislin.piegrf(cbuf, 1, xray, 5) Dislin.height(50) Dislin.title() Dislin.disfin()
3-D Bar Graph / 3-D Pie Chart / Ruby
#!/usr/bin/ruby require 'dislin' xray = [2.0, 4.0, 6.0, 8.0, 10.0] y1ray = [0.0, 0.0, 0.0, 0.0, 0.0] y2ray = [3.2, 1.5, 2.0, 1.0, 3.0] ic1ray = [50, 150, 100, 200, 175] ic2ray = [50, 150, 100, 200, 175] Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.hwfont() Dislin.titlin('3-D Bar Graph / 3-D Pie Chart', 2) Dislin.htitle(40) Dislin.shdpat(16) Dislin.axslen(1500, 1000) Dislin.axspos(300, 1400) Dislin.barwth(0.5) Dislin.bartyp('3dvert') Dislin.labels('second', 'bars') Dislin.labpos('outside', 'bars') Dislin.labclr(255, 'bars') Dislin.graf(0.0, 12.0, 0.0, 2.0, 0.0, 5.0, 0.0, 1.0) Dislin.title() Dislin.color('red') Dislin.bars(xray, y1ray, y2ray, 5) Dislin.endgrf() Dislin.shdpat(16) Dislin.labels('data', 'pie') Dislin.labclr(255, 'pie') Dislin.chnpie('none') Dislin.pieclr(ic1ray, ic2ray, 5) Dislin.pietyp('3d') Dislin.axspos(300, 2700) cbuf = ' ' Dislin.piegrf(cbuf, 0, y2ray, 5) Dislin.disfin()
3-D Bars / BARS3D / Ruby
#!/usr/bin/ruby require 'dislin' n = 18 xray = [1.0, 3.0, 8.0, 1.5, 9.0, 6.3, 5.8, 2.3, 8.1, 3.5, 2.2, 8.7, 9.2, 4.8, 3.4, 6.9, 7.5, 3.8] yray = [5.0, 8.0, 3.5, 2.0, 7.0, 1.0, 4.3, 7.2, 6.0, 8.5, 4.1, 5.0, 7.3, 2.8, 1.6, 8.9, 9.5, 3.2] z1ray = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] z2ray = [4.0, 5.0, 3.0, 2.0, 3.5, 4.5, 2.0, 1.6, 3.8, 4.7, 2.1, 3.5, 1.9, 4.2, 4.9, 2.8, 3.6, 4.3] icray = [30, 30, 30, 30, 30, 30, 100, 100, 100, 100, 100, 100, 170, 170, 170, 170, 170, 170] xwray = Array.new(n) ywray = Array.new(n) for i in 0..n-1 xwray[i] = 0.5 ywray[i] = 0.5 end Dislin.scrmod('revers') Dislin.metafl('xwin') Dislin.setpag('da4p') Dislin.disini() Dislin.hwfont() Dislin.pagera() Dislin.axspos(200, 2600) Dislin.axslen(1800, 1800) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.name('Z-axis', 'Z') Dislin.titlin('3-D Bars / BARS3D',3) Dislin.labl3d('hori') Dislin.graf3d(0.0,10.0,0.0,2.0,0.0,10.0,0.0,2.0,0.0,5.0,0.0,1.0) Dislin.grid3d(1, 1, 'bottom') Dislin.bars3d(xray, yray, z1ray, z2ray, xwray, ywray, icray, n) cbuf = ' ' Dislin.legini(cbuf, 3, 20) Dislin.legtit(' ') Dislin.legpos(1350, 1150) Dislin.leglin(cbuf, 'First', 1) Dislin.leglin(cbuf, 'Second', 2) Dislin.leglin(cbuf, 'Third', 3) Dislin.legend(cbuf, 3) Dislin.height(50) Dislin.title() Dislin.disfin()
Shading Patterns / Ruby
#!/usr/bin/ruby require 'dislin' ix = [0, 300, 300, 0] iy = [0, 0, 400, 400] ixp = [0, 0, 0, 0] iyp = [0, 0, 0, 0] Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.setvlt('small') Dislin.pagera() Dislin.complx() Dislin.height(50) ctit = "Shading patterns (AREAF)" nl = Dislin.nlmess(ctit) Dislin.messag(ctit, (2970 - nl)/2, 200) nx0 = 335 ny0 = 350 iclr = 0 for i in 0..2 ny = ny0 + i * 600 for j in 0..5 nx = nx0 + j * 400 ii = i * 6 + j Dislin.shdpat(ii) iclr = iclr + 1 iclr = iclr % 8 if iclr == 0 iclr = 8 end Dislin.setclr(iclr) for k in 0..3 ixp[k] = ix[k] + nx iyp[k] = iy[k] + ny end Dislin.areaf(ixp, iyp, 4) nl = Dislin.nlnumb(ii, -1) nx = nx + (300 - nl) / 2 Dislin.color('foreground') Dislin.number(ii, -1, nx, ny + 460) end end Dislin.disfin()
3-D Colour Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = '3-D Colour Plot of the Function' ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN (Y)' n = 50 m = 50 zmat = Array.new(n*m) fpi = 3.1415927 / 180.0 stepx = 360.0 / (n - 1) stepy = 360.0 / (m - 1) for i in 0..n-1 x = i * stepx for j in 0..m-1 y = j * stepy zmat[i*m+j] = 2 * Math.sin(x * fpi) * Math.sin(y * fpi) end end Dislin.scrmod('revers') Dislin.metafl('xwin') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.titlin(ctit1, 1) Dislin.titlin(ctit2, 3) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.name('Z-axis', 'Z') Dislin.intax() Dislin.autres(n, m) Dislin.axspos(300, 1850) Dislin.ax3len(2200, 1400, 1400) Dislin.graf3(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0, -2.0, 2.0, -2.0, 1.0) Dislin.crvmat(zmat, n, m, 1, 1) Dislin.height(50) Dislin.title() Dislin.disfin()
Surface Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = 'Surface Plot of the Function' ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN(Y)' n = 50 m = 50 zmat = Array.new(n*m) fpi = 3.1415927 / 180.0 stepx = 360.0 /(n - 1) stepy = 360.0 /(m - 1) for i in 0..n-1 x = i * stepx for j in 0..m-1 y = j * stepy zmat[i*m+j] = 2 * Math.sin(x * fpi) * Math.sin(y * fpi) end end Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.titlin(ctit1, 2) Dislin.titlin(ctit2, 4) Dislin.axspos(200, 2600) Dislin.axslen(1800, 1800) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.name('Z-axis', 'Z') Dislin.view3d(-5.0, -5.0, 4.0, 'ABS') Dislin.graf3d(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0, -3.0, 3.0, -3.0, 1.0) Dislin.height(50) Dislin.title() Dislin.color('green') Dislin.surmat(zmat, n, m, 1, 1) Dislin.disfin()
Shaded Surface Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = 'Surface Plot of the Function' ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN(Y)' n = 50 m = 50 xray = Array.new(n) yray = Array.new(m) zmat = Array.new(n*m) fpi = 3.1415927 / 180.0 stepx = 360.0 /(n - 1) stepy = 360.0 /(m - 1) for i in 0..n-1 x = i * stepx xray[i] = x for j in 0..m-1 y = j * stepy yray[j] = y zmat[i*m+j] = 2 * Math.sin(x * fpi) * Math.sin(y * fpi) end end Dislin.metafl('cons') Dislin.scrmod('revers') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.titlin(ctit1, 2) Dislin.titlin(ctit2, 4) Dislin.axspos(200, 2600) Dislin.axslen(1800, 1800) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.name('Z-axis', 'Z') Dislin.view3d(-5.0, -5.0, 4.0, 'ABS') Dislin.graf3d(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0, -3.0, 3.0, -3.0, 1.0) Dislin.height(50) Dislin.title() Dislin.shdmod('smooth', 'surface') Dislin.surshd(xray,n,yray,n,zmat) Dislin.disfin()
Contour Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = 'Contour Plot' ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN(Y)' n = 50 m = 50 xray = Array.new(n) yray = Array.new(m) zlev = Array.new(12) zmat = Array.new(n * m) fpi = 3.1415927 / 180.0 stepx = 360.0 /(n - 1) stepy = 360.0 /(m - 1) for i in 0..n-1 xray[i] = i * stepx end for i in 0..m-1 yray[i] = i * stepy end for i in 0..n-1 x = xray[i] * fpi for j in 0..m-1 y = yray[j] * fpi zmat[i*m+j] = 2 * Math.sin(x) * Math.sin(y) end end Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.titlin(ctit1, 1) Dislin.titlin(ctit2, 3) Dislin.intax() Dislin.axspos(450, 2650) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.graf(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0) Dislin.height(50) Dislin.title() Dislin.height(30) for i in 0..8 zlev = -2.0 + i * 0.5 if i == 4 Dislin.labels('NONE', 'CONTUR') else Dislin.labels('FLOAT', 'CONTUR') end Dislin.setclr((i+1) * 28) Dislin.contur(xray, n, yray, m, zmat, zlev) end Dislin.disfin()
Shaded Contour Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = 'Shaded Contour Plot' ctit2 = 'F(X,Y) =(X[2$ - 1)[2$ +(Y[2$ - 1)[2$' n = 50 m = 50 xray = Array.new(n) yray = Array.new(m) zlev = Array.new(12) zmat = Array.new(n * m) stepx = 1.6 /(n - 1) stepy = 1.6 /(m - 1) for i in 0..n-1 xray[i] = i * stepx end for i in 0..m-1 yray[i] = i * stepy end for i in 0..n-1 x = xray[i] * xray[i] - 1.0 x = x * x for j in 0..m-1 y = yray[j] * yray[j] - 1.0 zmat[i*m+j] = x + y * y end end Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.mixalf() Dislin.titlin(ctit1, 1) Dislin.titlin(ctit2, 3) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.axspos(450, 2670) Dislin.shdmod('poly', 'contur') Dislin.graf(0.0, 1.6, 0.0, 0.2, 0.0, 1.6, 0.0, 0.2) for i in 0..11 zlev[11-i] = 0.1 + i * 0.1 end Dislin.conshd(xray, n, yray, m, zmat, zlev, 12) Dislin.height(50) Dislin.title() Dislin.disfin()
Shaded Surface / Contour Plot / Ruby
#!/usr/bin/ruby require 'dislin' ctit1 = 'Shaded Surface / Contour Plot' ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN(Y)' n = 50 m = 50 nlev = 20 zmat = Array.new(n*m) xray = Array.new(n) yray = Array.new(m) zlev = Array.new(nlev) fpi = 3.1415927 / 180.0 stepx = 360.0 /(n - 1) stepy = 360.0 /(m - 1) for i in 0..n-1 x = i * stepx xray[i] = x for j in 0..m-1 y = j * stepy yray[j] = y zmat[i*m+j] = 2 * Math.sin(x * fpi) * Math.sin(y * fpi) end end Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.setpag('da4p') Dislin.disini() Dislin.pagera() Dislin.hwfont() Dislin.titlin(ctit1, 2) Dislin.titlin(ctit2, 4) Dislin.axspos(200, 2600) Dislin.axslen(1800, 1800) Dislin.name('X-axis', 'X') Dislin.name('Y-axis', 'Y') Dislin.name('Z-axis', 'Z') Dislin.graf3d(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0, -2.0, 2.0, -2.0, 1.0) Dislin.height(50) Dislin.title() Dislin.grfini(-1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0) Dislin.nograf() Dislin.graf(0.0, 360.0, 0.0, 90.0, 0.0, 360.0, 0.0, 90.0) step = 4.0 / nlev for i in 0..nlev-1 zlev[i] = -2.0 + i * step end Dislin.conshd(xray, n, yray, n, zmat, zlev, nlev) Dislin.box2d(); Dislin.reset('nograf'); Dislin.grffin(); Dislin.shdmod('smooth', 'surface') Dislin.surshd(xray, n, yray, m, zmat) Dislin.disfin()
Spheres and Tubes / Ruby
#!/usr/bin/ruby require 'dislin' x = [10.0, 20.0, 10.0, 20.0, 5.0, 15.0, 25.0, 5.0, 15.0, 25.0, 5.0, 15.0, 25.0, 10.0, 20.0, 10.0, 20.0] y = [10.0, 10.0, 20.0, 20.0, 5.0, 5.0, 5.0, 15.0, 15.0, 15.0, 25.0, 25.0, 25.0, 10.0, 10.0, 20.0, 20.0] z = [5.0, 5.0, 5.0, 5.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 25.0, 25.0, 25.0, 25.0] idx = [1, 2, 1, 3, 3, 4, 2, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 5, 8, 8, 11, 6, 9, 9, 12, 7, 10, 10, 13, 14, 15, 16, 17, 14, 16, 15, 17, 1, 5, 2, 7, 3, 11, 4, 13, 5, 14, 7, 15, 11, 16, 13, 17] Dislin.setpag('da4p') Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.hwfont() Dislin.light('on') Dislin.matop3(0.02, 0.02, 0.02, 'specular') Dislin.clip3d('none') Dislin.axspos(0, 2500) Dislin.axslen(2100, 2100) Dislin.htitle(50) Dislin.titlin('Spheres and Tubes', 4) Dislin.name('X-axis', 'x') Dislin.name('Y-axis', 'y') Dislin.name('Z-axis', 'z') Dislin.labdig(-1, 'xyz') Dislin.labl3d('hori') Dislin.graf3d(0.0, 30.0, 0.0, 5.0, 0.0, 30.0, 0.0, 5.0, 0.0, 30.0, 0.0, 5.0) Dislin.title() Dislin.shdmod('smooth', 'surface') iret = Dislin.zbfini() Dislin.matop3(1.0, 0.0, 0.0, 'diffuse') for i in 0..16 Dislin.sphe3d(x[i], y[i], z[i], 2.0, 50, 25) end Dislin.matop3(0.0, 1.0, 0.0, 'diffuse') for i in 0..27 j = 2 * i j1 = idx[j] - 1 j2 = idx[j+1] - 1 Dislin.tube3d(x[j1], y[j1], z[j1], x[j2], y[j2], z[j2], 0.5, 5, 5) end Dislin.zbffin() Dislin.disfin()
Some Solids / Ruby
#!/usr/bin/ruby require 'dislin' Dislin.setpag('da4p') Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.hwfont() Dislin.light('on') Dislin.litop3(1,0.5,0.5,0.5,'ambient') Dislin.clip3d('none') Dislin.axspos(0, 2500) Dislin.axslen(2100, 2100) Dislin.htitle(60) Dislin.titlin('Some Solids', 4) Dislin.nograf() Dislin.graf3d(-5.0, 5.0, -5.0, 2.0, -5.0, 5.0, -5.0, 2.0, -5.0, 5.0, -5.0, 2.0) Dislin.title() Dislin.shdmod('smooth', 'surface') iret = Dislin.zbfini() Dislin.matop3(1.0, 0.5, 0.0, 'diffuse') Dislin.tube3d(-3.0, -3.0, 8.0, 2.0, 3.0, 5.5, 1.0, 40, 20) Dislin.rot3d(-60.0, 0.0, 0.0) Dislin.matop3(1.0, 0.0, 1.0, 'diffuse') Dislin.setfce('bottom') Dislin.matop3(1.0, 0.0, 0.0, 'diffuse') Dislin.cone3d(-3.0, -3.0, 3.5, 2.0, 3.0, 3.0, 40, 20) Dislin.setfce('top') Dislin.rot3d(0.0, 0.0, 0.0) Dislin.matop3(0.0, 1.0, 1.0, 'diffuse') Dislin.plat3d(4.0, 4.0, 3.0, 3.0, 'icos') Dislin.rot3d(0.0, 0.0, 0.0) Dislin.matop3(1.0, 1.0, 0.0, 'diffuse') Dislin.sphe3d(0.0, 0.0, 0.0, 3.0, 40, 20) Dislin.rot3d(0.0, 0.0, -20.0) Dislin.matop3(0.0, 0.0, 1.0, 'diffuse') Dislin.quad3d(-4.0, -4.0, -3.0, 3.0, 3.0, 3.0) Dislin.rot3d(0.0, 0.0, 30.0) Dislin.matop3(1.0, 0.3, 0.3, 'diffuse') Dislin.pyra3d(-2.0, -5.0, -10.0, 3.0, 5.0, 5.0, 4) Dislin.rot3d(0.0, 0.0, 0.0) Dislin.matop3(1.0, 0.0, 0.0, 'diffuse') Dislin.torus3d(7.0, -3.0, -2.0, 1.5, 3.5, 1.5, 0.0, 360.0, 40, 20) Dislin.rot3d(0.0, 90.0, 0.0) Dislin.matop3(0.0, 1.0, 0.0, 'diffuse') Dislin.torus3d(7.0, -5.0, -2.0, 1.5, 3.5, 1.5, 0.0, 360.0, 40, 20) Dislin.zbffin() Dislin.disfin()
Map Plot / Ruby
#!/usr/bin/ruby require 'dislin' Dislin.scrmod('revers') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.axspos(400, 1850) Dislin.axslen(2400, 1400) Dislin.name('Longitude', 'X') Dislin.name('Latitude', 'Y') Dislin.titlin('World Coastlines and Lakes', 3) Dislin.labels('MAP', 'XY') Dislin.labdig(-1, 'XY') Dislin.grafmp(-180.0, 180.0, -180.0, 90.0, -90.0, 90.0, -90.0, 30.0) Dislin.gridmp(1, 1) Dislin.color('green') Dislin.world() Dislin.color('foreground') Dislin.height(50) Dislin.title() Dislin.disfin()
Tex Instructions for Mathematical Formulas / Ruby
#!/usr/bin/ruby require 'dislin' Dislin.scrmod('revers') Dislin.setpag('da4p') Dislin.metafl('cons') Dislin.disini() Dislin.pagera() Dislin.complx() Dislin.height(40) cstr = 'TeX Instructions for Mathematical Formulas' nl = Dislin.nlmess(cstr) Dislin.messag(cstr, (2100 - nl)/2, 100) Dislin.texmod('on') Dislin.messag('$\\frac{1}{x+y}$', 150, 400) Dislin.messag('$\\frac{a^2 - b^2}{a+b} = a - b$', 1200, 400) Dislin.messag('$r = \\sqrt{x^2 + y^2}', 150, 700) Dislin.messag('$\\cos \\phi = \\frac{x}{\\sqrt{x^2 + y^2}}$', 1200, 700) Dislin.messag('$\\Gamma(x) = \\int_0^\\infty e^{-t}t^{x-1}dt$', 150, 1000) Dislin.messag('$\\lim_{x \\to \\infty}(1 + \\frac{1}{x})^x = e$', 1200, 1000) Dislin.messag('$\\mu = \\sum_{i=1}^n x_i p_i$', 150, 1300) Dislin.messag('$\\mu = \\int_{-\\infty}^ \\infty x f(x) dx$', 1200, 1300) Dislin.messag('$\\overline{x} = \\frac{1}{n} \\sum_{i=1}^n x_i$', 150, 1600) Dislin.messag('$s^2 = \\frac{1}{n-1} \\sum_{i=1}^n(x_i - \\overline{x})^2$', 1200, 1600) Dislin.messag('$\\sqrt[n]{\\frac{x^n - y^n}{1 + u^{2n}}}$', 150, 1900) Dislin.messag('$\\sqrt[3]{-q + \\sqrt{q^2 + p^3}}$', 1200, 1900) Dislin.messag('$\\int \\frac{dx}{1+x^2} = \\arctan x + C$', 150, 2200) Dislin.messag('$\\int \\frac{dx}{\\sqrt{1+x^2}} = {\\rm arsinh} x + C$', 1200, 2200) Dislin.messag('$\\overline{P_1P_2} = \\sqrt{(x_2-x_1)^2 +(y_2-y_1)^2}$', 150,2500) Dislin.messag('$x = \\frac{x_1 + \\lambda x_2}{1 + \\lambda}$', 1200, 2500) Dislin.disfin()

News
Support for Python 3.11 and Windows
28. July 2023
Bug fix for the X11 distributions
22. July 2023
Upgrade 11.5.1
25. April 2023
Support for Linux 64-bit on IBM z series
30. October 2022
Support for MingW 64-bit UCRT runtime environment
28. September 2022
Release 11.5
15. March 2022
Release 11.4
15. March 2021
Support for Free Pascal 64-bit on Windows
22. July 2020
Upgrade 11.3.3
28. June 2020
Upgrade 11.3.2
19. May 2020
DISLIN Book Version 11 is available
8. March 2017
28. July 2023
Bug fix for the X11 distributions
22. July 2023
Upgrade 11.5.1
25. April 2023
Support for Linux 64-bit on IBM z series
30. October 2022
Support for MingW 64-bit UCRT runtime environment
28. September 2022
Release 11.5
15. March 2022
Release 11.4
15. March 2021
Support for Free Pascal 64-bit on Windows
22. July 2020
Upgrade 11.3.3
28. June 2020
Upgrade 11.3.2
19. May 2020
DISLIN Book Version 11 is available
8. March 2017