72 lines
2.5 KiB
Text
72 lines
2.5 KiB
Text
Module Pairs {
|
|
\\ written in version 9.5 rev. 13
|
|
\\ use Gdi+ antialiasing (not work with Wine in Linux, but we get no error)
|
|
smooth on
|
|
Const center=2, right=3, left=1, blue=1, angle=0, dotline=3
|
|
Const size9pt=9, size11pt=11
|
|
Cls ,0 ' use current background color, set split screen from line 0
|
|
Cursor 0,3
|
|
Report center, "Coordinate pairs"
|
|
x = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
|
|
y = (2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0)
|
|
dx=scale.x/2/len(x)
|
|
dy=dx 'ratio 1:1
|
|
graH=dy*len(x)
|
|
Basex=scale.x/4
|
|
Basey=(scale.y+graH)/2
|
|
Move Basex, Basey
|
|
\\ draw use relative coordinates
|
|
Draw 0,-graH
|
|
\\ Step just move graphic cursor
|
|
Step 0, graH
|
|
Draw scale.x/2
|
|
Step -scale.x/2
|
|
\\ scX is 1, not used
|
|
max=Y#max()
|
|
\\ Auto scale for Y, using 0 for start of axis Y
|
|
scY=-graH/((max+5^log(max) ) div 100)/100
|
|
\\ make vertical axis using dots with numbers center per dx
|
|
j=1
|
|
For i=basex+dx to basex+dx*x#max() Step dx
|
|
Move i, basey
|
|
Step 0, twipsy*10
|
|
Legend format$("{0}",array(x,j)), "courier", size9pt, angle, center
|
|
Width 1, dotline { draw 0, -graH-twipsy*10,7}
|
|
j++
|
|
Next i
|
|
\\ the same for horizontal axis
|
|
HalfTextHeight=Size.y("1","courier", size9pt)/2
|
|
For i=basey-dy to basey-dy*x#max() Step dy
|
|
Move basex, i
|
|
Step -twipsx*10
|
|
Width 1, dotline { draw scale.x/2+twipsx*10,,7}
|
|
Move basex-100, i+HalfTextHeight
|
|
Legend format$("{0}",(i-basey)/scY), "courier", size9pt, angle, left
|
|
Next i
|
|
ex=each(x) : ey=each(y)
|
|
\\ start from first point. We use Draw to for absolute coordinates
|
|
Move array(x,0)*dx+Basex, array(y,0)*scy+Basey
|
|
While ex, ey {
|
|
Width 2 {
|
|
Draw to array(ex)*dx+Basex, array(ey)*scy+Basey, blue
|
|
}
|
|
}
|
|
\\ second pass for marks and labels
|
|
ex=each(x) : ey=each(y)
|
|
While ex, ey {
|
|
Move array(ex)*dx+Basex, array(ey)*scy+Basey
|
|
Step -75, -75
|
|
Pen 12 {draw 150: draw 0,150 : draw -150 : draw 0,-150}
|
|
Pen 13 {
|
|
Step 200, -200
|
|
Legend format$("({0}-{1})",array(ex),array(ey) ), "courier bold", size11pt, angle, right
|
|
}
|
|
}
|
|
\\ screenshot to clipboard
|
|
Screenshot$=""
|
|
Move 0,0
|
|
Copy scale.x, scale.y to Screenshot$
|
|
Clipboard Screenshot$
|
|
a$=key$
|
|
}
|
|
Pairs
|