mobilebasic/Examples/Graphics/crossplot.bas

87 lines
1.7 KiB
QBasic
Raw Normal View History

2021-03-29 19:43:07 +03:00
SUB CROSSPLOT(NP AS INTEGER, XARRAY(1) AS DOUBLE, YARRAY(1) AS DOUBLE)
DIM LEFT, RIGHT, TOP, BOTTOM AS INTEGER
DIM NX, NY AS INTEGER
DIM W, H AS INTEGER
DIM XDELTA, YDELTA AS DOUBLE
DIM XPOS, YPOS AS DOUBLE
DIM I AS INTEGER
DIM S AS STRING
DIM BORDER AS INTEGER
BORDER = 40
TOP = BORDER
BOTTOM = SCREENHEIGHT() - BORDER * 2
LEFT = BORDER
RIGHT = SCREENWIDTH() - BORDER * 2
SETCOLOR 0,0,0
CLS
SETCOLOR 255,255,0
NX = 10
NY = 10
XDELTA = DOUBLE(RIGHT - LEFT) / DOUBLE(NX)
YDElTA = DOUBLE(BOTTOM - TOP) / DOUBLE(NY)
FOR I=0 TO NX
XPOS = DOUBLE(LEFT) + DOUBLE(I) * XDELTA
DRAWLINE XPOS, TOP, XPOS, BOTTOM
END FOR
FOR I=0 TO NY
YPOS = DOUBLE(TOP) + DOUBLE(I) * YDELTA
DRAWLINE LEFT, YPOS, RIGHT, YPOS
END FOR
S = "0.0"
W = STRINGWIDTH(S)+1
H = STRINGHEIGHT(S)+1
DRAWSTRING S,LEFT-W,BOTTOM
DRAWSTRING S,LEFT,BOTTOM+H
S = "1.0"
W = STRINGWIDTH(S)+1
H = STRINGHEIGHT(S)+1
DRAWSTRING S,LEFT-W,TOP+H
DRAWSTRING S,RIGHT-W,BOTTOM+H
S = "Y-Axis"
W = STRINGWIDTH(S)+1
H = STRINGHEIGHT(S)+1
DRAWSTRING S,LEFT-W,TOP+(BOTTOM-TOP-H)/2
S = "X-Axis"
W = STRINGWIDTH(S)+1
H = STRINGHEIGHT(S)+1
DRAWSTRING S,LEFT+(RIGHT-LEFT-W)/2,BOTTOM+H
SETCOLOR 255,255,255
FOR I=1 TO NP
XPOS = DOUBLE(LEFT) + XARRAY(I) * DOUBLE(RIGHT - LEFT)
YPOS = DOUBLE(TOP) + YARRAY(I) * DOUBLE(BOTTOM - TOP)
PLOT XPOS, YPOS
END FOR
END SUB
SUB MAIN
DIM XARRAY(500), YARRAY(500) AS DOUBLE
DIM NP AS INTEGER
DIM I AS INTEGER
NP = 500
FOR I=1 TO NP
XARRAY(I) = RND(0.0)
YARRAY(I) = RND(0.0)
END FOR
GRAPHICS
CALL CROSSPLOT(NP, XARRAY, YARRAY)
REPAINT
SLEEP 5000
END SUB