DISLIN Beispiele / 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 für Python 3.11 unter Windows
28. Juli 2023
Bugfix für die X11-Distributionen
22. Juli 2023
Update 11.5.1
25. April 2023
Support für Linux 64-bit auf IBM z Rechnern
30. Oktober 2022
Support für MingW 64-bit mit UCRT Runtime-Umgebung
28. September 2022
Release 11.5
15. März 2022
Release 11.4
15. März 2021
Support für Free Pascal 64-bit unter Windows
22. Juli 2020
Upgrade 11.3.3
28. Juni 2020
Upgrade 11.3.2
19. Mai 2020
DISLIN-Buch Version 11 ist erhältlich
8. März 2017
28. Juli 2023
Bugfix für die X11-Distributionen
22. Juli 2023
Update 11.5.1
25. April 2023
Support für Linux 64-bit auf IBM z Rechnern
30. Oktober 2022
Support für MingW 64-bit mit UCRT Runtime-Umgebung
28. September 2022
Release 11.5
15. März 2022
Release 11.4
15. März 2021
Support für Free Pascal 64-bit unter Windows
22. Juli 2020
Upgrade 11.3.3
28. Juni 2020
Upgrade 11.3.2
19. Mai 2020
DISLIN-Buch Version 11 ist erhältlich
8. März 2017