from math import * import kandinsky as k from turtle import * #from my_functions import * def f_function(x): return 5*sin(x) tMin = 0 tMax = 2*pi def x_function(x): return 5*cos(x) def y_function(x): return 5*sin(x) def draw_grid(xmin=-14.4,xmax=14.4,ymin=-10,ymax=10): blk=k.color(0,0,0) gry=k.color(220, 220, 220) y_0=int(ymax*222.0/(ymax-ymin)) x_0=int(xmin*320.0/(xmin-xmax)) gridx = int(xmin) while gridx <= xmax: x=int(319.0*(gridx-xmin)/(xmax-xmin)) for y in range(222): k.set_pixel(x,y,gry) gridx+=1 gridy = int(ymin) while gridy <= ymax: y=int(221.0*(gridy-ymin)/(ymax-ymin)) for x in range(320): k.set_pixel(x,y,gry) gridy+=1 for x in range(320): k.set_pixel(x,y_0,blk) for y in range(222): k.set_pixel(x_0,y,blk) def graph(it=1000,f=f_function,xmin=-14.4,xmax=14.4,ymin=-10,ymax=10): reset() hideturtle() speed(10) x_map = 320.0/(xmax-xmin) y_map = 222.0/(ymax-ymin) x_0 = int(x_map*(xmax+xmin)/2.0) y_0 = int(y_map*(ymax+ymin)/2.0) draw_grid(xmin, xmax, ymin, ymax) penup() color(0,0,255) for x in range(it+1): X = xmin+x*(xmax-xmin)/float(it) try: Y=f(X) turtle_x=x_0+int(X*x_map) turtle_y=y_0+int(Y*y_map) if abs(turtle_x)<=(320.0/2.0) and abs(turtle_y)<=(220.0/2.0): goto(turtle_x, turtle_y) pendown() else: penup() goto(0,0) except: Y=0 penup() def parametric_graph(it=1000,fx=x_function,fy=y_function,tmax=tMax,tmin=tMin,xmin=-14.4,xmax=14.4,ymin=-10,ymax=10): reset() hideturtle() speed(10) x_map = 320/(xmax-xmin) y_map = 220/(ymax-ymin) x_0 = int(x_map*(xmax+xmin)/2.0) y_0 = int(y_map*(ymax+ymin)/2.0) draw_grid(xmin,xmax,ymin,ymax) penup() color(0,0,255) for t in range(it+1): T = tmin+t*(tmax-tmin)/float(it) try: X=fx(T) Y=fy(T) turtle_x=x_0+int(X*x_map) turtle_y=y_0+int(Y*y_map) if abs(turtle_x)<=(320.0/2.0) and abs(turtle_y)<=(220.0/2.0): goto(turtle_x, turtle_y) pendown() else: penup() goto(0,0) except: X=0 Y=0 penup()