68 lines
994 B
Plaintext
Raw Normal View History

2018-03-07 15:25:55 -05:00
# graph area
2018-03-21 12:20:44 -04:00
plotx = 50
ploty = 50
plotw = 380
ploth = 220
cx = plotx + plotw / 2
cy = ploty + ploth / 2
2018-03-07 15:25:55 -05:00
# graph range
2018-03-21 12:20:44 -04:00
xmin = 0 - 10
xmax = 10
ymin = 0 - 10
ymax = 10
2018-03-07 15:25:55 -05:00
2018-03-21 12:20:44 -04:00
xinc = plotw / (xmax - xmin)
yinc = ploth / (ymax - ymin)
2018-03-07 15:25:55 -05:00
2018-03-21 12:20:44 -04:00
mlines = color(3, 3, 3)
2018-03-07 22:43:54 -05:00
2018-03-21 12:20:44 -04:00
func(makegrid) {
rect(plotx, ploty, plotw, ploth, 0)
2018-03-07 15:25:55 -05:00
2018-03-21 12:20:44 -04:00
x = plotx
while (x <= plotx + plotw) {
line(x, ploty, x, ploty + ploth, mlines)
x = x + xinc
}
2018-03-07 22:43:54 -05:00
2018-03-21 12:20:44 -04:00
y = ploty
while (y <= ploty + ploth) {
line(plotx, y, plotx + plotw, y, mlines)
y = y + yinc
}
2018-03-07 22:43:54 -05:00
2018-03-21 12:20:44 -04:00
line(cx, ploty, cx, ploty + ploth, 32767)
line(plotx, cy, plotx + plotw, cy, 32767)
}
2018-03-07 22:43:54 -05:00
#
# BIG LOOP - ask for equ, graph it
#
2018-03-21 12:20:44 -04:00
makegrid()
clearcmd = "clear"
while (1) {
rect(0, 0, 480, 40, 0)
print("f(x) = ")
Fx = gets()
2018-03-07 22:43:54 -05:00
2018-03-21 12:20:44 -04:00
if (Fx == clearcmd) {
makegrid()
} else {
2018-03-07 22:43:54 -05:00
# do function
2018-03-21 12:20:44 -04:00
x = xmin
while (x < xmax) {
y = solve(Fx)
y = 0 - y
if ((y >= ymin) & (y <= ymax)) {
pixel(cx + x * xinc, cy + y * yinc, 511)
}
x = x + 1 / xinc
}
}
ppos(0, 0)
}
2018-03-07 15:25:55 -05:00