DISLIN Examples / Go
Demonstration of CURVE / Go
package main
import "dislin"
import "math"
func main () {
const n int = 100
var step, fpi, x float64
var xray, y1ray, y2ray [n]float64
step = 360.0 / float64 (n - 1)
fpi = 3.1415926 / 180.0
for i:= 0; i < n; i++ {
xray[i] = float64 (i) * step
x = xray[i] * fpi
y1ray[i] = math.Sin (x)
y2ray[i] = math.Cos (x)
}
dislin.Metafl ("xwin")
dislin.Scrmod ("reverse")
dislin.Disini ()
dislin.Pagera ()
dislin.Complx ()
dislin.Name ("X-axis", "X")
dislin.Name ("Y-axis", "Y")
dislin.Labdig (-1, "X")
dislin.Ticks (9, "X")
dislin.Ticks (10, "Y")
dislin.Titlin ("Demonstration of CURVE", 1)
dislin.Titlin ("SIN (X), COS (X)", 3)
dislin.Axspos (450, 1800)
dislin.Axslen (2200, 1200)
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[0], &y1ray[0], n)
dislin.Color ("green")
dislin.Curve (&xray[0], &y2ray[0], n)
dislin.Disfin ()
}
Polar Plots / Go
package main
import "dislin"
import "math"
func main () {
const n int = 300
const m int = 10
var x1, y1 [n]float64
var x2, y2 [m]float64
pi := 3.1415926
f := pi / 180.0
step := 360.0 / float64 (n - 1)
for i:= 0; i < n; i++ {
a := (float64 (i) * step) * f
y1[i] = a
x1[i] = math.Sin (5 * a)
}
for i:= 0; i < m; i++ {
x2[i] = float64 (i + 1)
y2[i] = float64 (i + 1)
}
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[0], &y1[0], 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[0], &y2[0], m)
dislin.Disfin ()
}
Symbols / Go
package main
import "dislin"
func main () {
var ctit = "Symbols"
var nl, ny, nxp int
dislin.Setpag ("da4p")
dislin.Metafl ("cons")
dislin.Disini ()
dislin.Complx ()
dislin.Pagera ()
dislin.Paghdr ("H. Michels (", ")", 2, 0)
dislin.Height (60)
nl = dislin.Nlmess (ctit)
dislin.Messag (ctit, (2100 - nl) / 2, 200)
dislin.Height (50)
dislin.Hsymbl (120)
ny = 150
for i:=0; i < 22; i++ {
if (i % 4) == 0 {
ny = ny + 400
nxp = 550
} else {
nxp = nxp + 350
}
x := float64 (i)
nl = dislin.Nlnumb (x, -1)
dislin.Number (x, -1, nxp - nl/2, ny + 150)
dislin.Symbol (i, nxp, ny)
}
dislin.Disfin ()
}
Interpolation Methods / Go
package main
import "dislin"
func main () {
ctit := "Interpolation Methods"
cpol := [6]string{"SPLINE", "STEM", "BARS", "STAIRS", "STEP", "LINEAR"}
xray := [16]float64{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 := [16]float64{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}
dislin.Setpag ("da4p")
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")
nya := 2700
for i:=0; i < 6; i++ {
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.Curve (&xray[0], &yray[0], 16)
if i == 5 {
dislin.Height (50)
dislin.Title ()
}
dislin.Endgrf ()
}
dislin.Disfin ()
}
Bar Graphs / Go
package main
import "dislin"
func main () {
x := [9]float64{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}
y := [9]float64{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}
y1 := [9]float64{1.0, 1.5, 2.5, 1.3, 2.0, 1.2, 0.7, 1.4, 1.10}
y2 := [9]float64{2.0, 2.7, 3.5, 2.1, 3.2, 1.9, 2.0, 2.3, 1.8}
y3 := [9]float64{4.0, 3.5, 4.5, 3.7, 4.0, 2.9, 3.0, 3.2, 2.6}
var cbuf [24]int8
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)
dislin.Legini (&cbuf[0], 3, 8)
dislin.Leglin (&cbuf[0], "FIRST", 1)
dislin.Leglin (&cbuf[0], "SECOND", 2)
dislin.Leglin (&cbuf[0], "THIRD", 3)
dislin.Legtit (" ")
dislin.Shdpat (5)
for i:= 0; i < 3; i++ {
if i > 0 {
dislin.Labels ("none", "x")
}
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[0], &y[0], &y1[0], 9)
dislin.Color ("green")
dislin.Bars (&x[0], &y[0], &y2[0], 9)
dislin.Color ("blue")
dislin.Bars (&x[0], &y[0], &y3[0], 9)
dislin.Color ("fore")
dislin.Reset ("bargrp")
} else if i == 1 {
dislin.Height (30)
dislin.Labels ("delta", "bars")
dislin.Labpos ("center", "bars")
dislin.Color ("red")
dislin.Bars (&x[0], &y[0], &y1[0], 9)
dislin.Color ("green")
dislin.Bars (&x[0], &y1[0], &y2[0], 9)
dislin.Color ("blue")
dislin.Bars (&x[0], &y2[0], &y3[0], 9)
dislin.Color ("fore")
dislin.Reset ("height")
} else if i == 2 {
dislin.Labels ("second", "bars")
dislin.Labpos ("outside", "bars")
dislin.Color ("red")
dislin.Bars (&x[0], &y[0], &y1[0], 9)
dislin.Color ("fore")
}
if i != 2 {
dislin.Legend (&cbuf[0], 7)
}
if i == 2 {
dislin.Height (50)
dislin.Title ()
}
dislin.Endgrf ()
}
dislin.Disfin ()
}
Pie Charts / Go
package main
import "dislin"
func main () {
var cbuf [14]int8
xray := [5]float64{1.0, 2.5, 2.0, 2.7, 1.8}
ctit := "Pie Charts(PIEGRF)"
dislin.Setpag ("da4p")
dislin.Metafl ("cons")
dislin.Disini ()
dislin.Pagera ()
dislin.Complx ()
dislin.Chnpie ("BOTH")
dislin.Axslen (1600, 1000)
dislin.Titlin (ctit, 2)
dislin.Legini (&cbuf[0], 5, 8)
dislin.Leglin (&cbuf[0], "FIRST", 1)
dislin.Leglin (&cbuf[0], "SECOND", 2)
dislin.Leglin (&cbuf[0], "THIRD", 3)
dislin.Leglin (&cbuf[0], "FOURTH", 4)
dislin.Leglin (&cbuf[0], "FIFTH", 5)
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[0], 1, &xray[0], 5)
dislin.Endgrf ()
dislin.Axspos (250, 1600)
dislin.Labels ("DATA", "PIE")
dislin.Labpos ("EXTERNAL", "PIE")
dislin.Piegrf (&cbuf[0], 1, &xray[0], 5)
dislin.Height (50)
dislin.Title ()
dislin.Disfin ()
}
3-D Bar Graph / 3-D Pie Chart / Go
package main
import "dislin"
func main () {
xray := [5]float64{2.0, 4.0, 6.0, 8.0, 10.0}
y1ray := [5]float64{0.0, 0.0, 0.0, 0.0, 0.0}
y2ray := [5]float64{3.2, 1.5, 2.0, 1.0, 3.0}
ic1ray := [5]int32{50, 150, 100, 200, 175}
ic2ray := [5]int32{50, 150, 100, 200, 175}
var cbuf [10]int8
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[0], &y1ray[0], &y2ray[0], 5)
dislin.Endgrf ()
dislin.Shdpat (16)
dislin.Labels ("data", "pie")
dislin.Labclr (255, "pie")
dislin.Chnpie ("none")
dislin.Pieclr (&ic1ray[0], &ic2ray[0], 5)
dislin.Pietyp ("3d")
dislin.Axspos (300, 2700)
dislin.Piegrf (&cbuf[0], 0, &y2ray[0], 5)
dislin.Disfin ()
}
3-D Bars / BARS3D / Go
package main
import "dislin"
func main () {
const n int = 18
xray := [n]float64{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 := [n]float64{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 := [n]float64{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 := [n]float64{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 := [n]int32{30, 30, 30, 30, 30, 30, 100, 100, 100, 100,
100, 100, 170, 170, 170, 170, 170, 170}
var xwray, ywray [n]float64
var cbuf [60]int8
for i:=0; i < n; i++ {
xwray[i] = 0.5
ywray[i] = 0.5
}
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[0], &yray[0], &z1ray[0],
&z2ray[0], &xwray[0], &ywray[0], &icray[0], n)
dislin.Legini (&cbuf[0], 3, 20)
dislin.Legtit (" ")
dislin.Legpos (1350, 1150)
dislin.Leglin (&cbuf[0], "First", 1)
dislin.Leglin (&cbuf[0], "Second", 2)
dislin.Leglin (&cbuf[0], "Third", 3)
dislin.Legend (&cbuf[0], 3)
dislin.Height (50)
dislin.Title ()
dislin.Disfin ()
}
Shading Patterns / Go
package main
import "dislin"
func main () {
ix := [4]int32{0, 300, 300, 0}
iy := [4]int32{0, 0, 400, 400}
ixp := [4]int32{0, 0, 0, 0}
iyp := [4]int32{0, 0, 0, 0}
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 := 0; i < 3; i++ {
ny := ny0 + i * 600
for j := 0; j < 6; j++ {
nx := nx0 + j * 400
ii := i * 6 + j
dislin.Shdpat (ii)
iclr = iclr + 1
iclr = iclr % 8
if iclr == 0 {
iclr = 8
}
dislin.Setclr (iclr)
for k := 0; k < 4; k++ {
ixp[k] = ix[k] + int32 (nx)
iyp[k] = iy[k] + int32 (ny)
}
dislin.Areaf (&ixp[0], &iyp[0], 4)
nl = dislin.Nlnumb (float64 (ii), -1)
nx = nx + (300 - nl) / 2
dislin.Color ("foreground")
dislin.Number (float64 (ii), -1, nx, ny + 460)
}
}
dislin.Disfin ()
}
3-D Colour Plot / Go
package main
import "dislin"
import "math"
func main () {
const n int = 50
const m int = 50
var zmat [n][m]float64
ctit1 := "3-D Colour Plot of the Function"
ctit2 := "F(X,Y) = 2 * SIN(X) * SIN (Y)"
fpi := 3.1415927 / 180.0
stepx := 360.0 / float64 (n - 1)
stepy := 360.0 / float64 (m - 1)
for i:= 0; i < n; i++ {
x := float64 (i) * stepx
for j:= 0; j < m; j++ {
y := float64 (j) * stepy
zmat[i][j] = 2 * math.Sin (x * fpi) * math.Sin (y * fpi)
}
}
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[0][0], n, m, 1, 1)
dislin.Height (50)
dislin.Title ()
dislin.Disfin ()
}
Surface Plot / Go
package main
import "dislin"
import "math"
func main () {
const n int = 50
const m int = 50
var zmat [n][m]float64
ctit1 := "Surface Plot of the Function"
ctit2 := "F (X,Y) = 2 * SIN (X) * SIN (Y)"
fpi := 3.1415927 / 180.0
stepx := 360.0 / float64 (n - 1)
stepy := 360.0 / float64 (m - 1)
for i:= 0; i < n; i++ {
x := float64 (i) * stepx
for j:= 0; j < m; j++ {
y := float64 (j) * stepy
zmat[i][j] = 2 * math.Sin (x * fpi) * math.Sin (y * fpi)
}
}
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[0][0], n, m, 1, 1)
dislin.Disfin ()
}
Shaded Surface Plot / Go
package main
import "dislin"
import "math"
func main () {
const n int = 50
const m int = 50
var zmat [n][m]float64
var xray [n]float64
var yray [m]float64
ctit1 := "Surface Plot of the Function"
ctit2 := "F(X,Y) = 2 * SIN(X) * SIN(Y)"
fpi := 3.1415927 / 180.0
stepx := 360.0 / float64 (n - 1)
stepy := 360.0 / float64 (m - 1)
for i:= 0; i < n; i++ {
xray[i] = float64 (i) * stepx
}
for i:= 0; i < m; i++ {
yray[i] = float64 (i) * stepy
}
for i:= 0; i < n; i++ {
for j:= 0; j < m; j++ {
zmat[i][j] = 2 * math.Sin (xray[i] * fpi) *
math.Sin (yray[j] * fpi)
}
}
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[0], n, &yray[0], n, &zmat[0][0])
dislin.Disfin ()
}
Contour Plot / Go
package main
import "dislin"
import "math"
func main () {
const n int = 50
const m int = 50
var xray [n] float64
var yray [m] float64
var zmat [n][m]float64
ctit1 := "Contour Plot"
ctit2 := "F(X,Y) = 2 * SIN(X) * SIN(Y)"
fpi := 3.1415927 / 180.0
stepx := 360.0 / float64 (n - 1)
stepy := 360.0 / float64 (m - 1)
for i:= 0; i < n; i++ {
xray[i] = float64 (i) * stepx
}
for i:= 0; i < m; i++ {
yray[i] = float64 (i) * stepy
}
for i:= 0; i < n; i++ {
x := xray[i] * fpi
for j:= 0; j < m; j++ {
y := yray[j] * fpi
zmat[i][j] = 2 * math.Sin (x) * math.Sin (y)
}
}
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:= 0; i < 8; i++ {
zlev := -2.0 + float64 (i) * 0.5
if i == 4 {
dislin.Labels ("NONE", "CONTUR")
} else {
dislin.Labels ("FLOAT", "CONTUR")
}
dislin.Setclr ( (i+1) * 28)
dislin.Contur (&xray[0], n, &yray[0], m, &zmat[0][0], zlev)
}
dislin.Disfin ()
}
Shaded Contour Plot / Go
package main
import "dislin"
func main () {
const n int = 50
const m int = 50
var xray [n] float64
var yray [m] float64
var zmat [n][m]float64
var zlev [12] float64
ctit1 := "Shaded Contour Plot"
ctit2 := "F(X,Y) =(X[2$ - 1)[2$ +(Y[2$ - 1)[2$"
stepx := 1.6 / float64 (n - 1)
stepy := 1.6 / float64 (m - 1)
for i:= 0; i < n; i++ {
xray[i] = float64 (i) * stepx
}
for i:= 0; i < m; i++ {
yray[i] = float64 (i) * stepy
}
for i:= 0; i < n; i++ {
x := xray[i] * xray[i] - 1.0
x = x * x
for j:= 0; j < m; j++ {
y := yray[j] * yray[j] - 1.0
zmat[i][j] = x + y * y
}
}
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:= 0; i < 12; i++ {
zlev[11-i] = 0.1 + float64 (i) * 0.1
}
dislin.Conshd (&xray[0], n, &yray[0], m, &zmat[0][0], &zlev[0], 12)
dislin.Height (50)
dislin.Title ()
dislin.Disfin ()
}
Shaded Surface / Contour Plot / Go
package main
import "dislin"
import "math"
func main () {
const n int = 50
const m int = 50
const nlev int = 20
var zmat [n][m]float64
var xray [n]float64
var yray [m]float64
var zlev [nlev]float64
ctit1 := "Shaded Surface / Contour Plot"
ctit2 := "F(X,Y) = 2 * SIN(X) * SIN(Y)"
fpi := 3.1415927 / 180.0
stepx := 360.0 / float64 (n - 1)
stepy := 360.0 / float64 (m - 1)
for i:= 0; i < n; i++ {
xray[i] = float64 (i) * stepx
}
for i:= 0; i < m; i++ {
yray[i] = float64 (i) * stepy
}
for i:= 0; i < n; i++ {
for j:= 0; j < m; j++ {
zmat[i][j] = 2 * math.Sin (xray[i] * fpi) *
math.Sin (yray[j] * fpi)
}
}
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 / float64 (nlev)
for i:= 0; i < nlev; i++ {
zlev[i] = -2.0 + float64 (i) * step
}
dislin.Conshd (&xray[0], n, &yray[0], n, &zmat[0][0], &zlev[0], nlev)
dislin.Box2d ();
dislin.Reset ("nograf");
dislin.Grffin ();
dislin.Shdmod ("smooth", "surface")
dislin.Surshd (&xray[0], n, &yray[0], m, &zmat[0][0])
dislin.Disfin ()
}
Spheres and Tubes / Go
package main
import "dislin"
func main () {
x := [17]float64{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 := [17]float64{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 := [17]float64{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 := [56]int32{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")
dislin.Zbfini ()
dislin.Matop3 (1.0, 0.0, 0.0, "diffuse")
for i:=0; i < 17; i++ {
dislin.Sphe3d (x[i], y[i], z[i], 2.0, 50, 25)
}
dislin.Matop3 (0.0, 1.0, 0.0, "diffuse")
for i:=0; i < 28; i++ {
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)
}
dislin.Zbffin ()
dislin.Disfin ()
}
Some Solids / Go
package main
import "dislin"
func main () {
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")
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 / Go
package main
import "dislin"
func main () {
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 / Go
package main
import "dislin"
func main () {
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
DISLIN manual as eBook from Amazon
5. April 2025
Support for OpenBSD 64-bit
17. January 2025
Support for Python 3.13 and Windows
17. January 2025
Updated PDF manual of the DISLIN book
8. January 2025
Upgrade 11.5.2
8. April 2024
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
DISLIN Book Version 11 is available
8. March 2017
5. April 2025
Support for OpenBSD 64-bit
17. January 2025
Support for Python 3.13 and Windows
17. January 2025
Updated PDF manual of the DISLIN book
8. January 2025
Upgrade 11.5.2
8. April 2024
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
DISLIN Book Version 11 is available
8. March 2017