Graphs circles (ellipses, hyperbolas, and parabolas in progress).
from math import * from kandinsky import * def circle_val(x=0,xc=0.0,yc=0.0,r=1.0): y1 = yc+sqrt(-((x-xc)**2-r**2)) y2 = yc-sqrt(-((x-xc)**2-r**2)) return y1, y2 def circle(xc=0.0,yc=0.0,r=1.0): draw_string("(x-"+str(xc)+")^2 + "+"(y-"+str(yc)+")^2 = "+str(r)+"^2",0,0) sr = 111 col = color(0, 0, 255) blk = color(0, 0, 0) gray = color(200, 200, 200) interval = 111.0/r xz = int(160.0-xc*interval) yz = int(111.0+yc*interval) xgrid = xz+interval while xgrid <= 320: y = 0 while y < 222: set_pixel(int(xgrid),y,gray) y+=1 xgrid+=interval xgrid = xz-interval while xgrid >= 0: y = 0 while y < 222: set_pixel(int(xgrid),y,gray) y+=1 xgrid-=interval ygrid = yz+interval while ygrid <= 222: x = 0 while x < 320: set_pixel(x,int(ygrid),gray) x+=1 ygrid+=interval ygrid = yz-interval while ygrid >= 0: x = 0 while x < 320: set_pixel(x,int(ygrid),gray) x+=1 ygrid-=interval y = 0 for y in range(222): set_pixel(xz,y,blk) y+=1 x = 0 for x in range(320): set_pixel(x,yz,blk) x = 160-sr while x<=160+sr: y1 = 111+sqrt(-((x-160)**2-sr**2)) y2 = 111-sqrt(-((x-160)**2-sr**2)) set_pixel(x,int(y1),col) set_pixel(x,int(y2),col) x+=1 y = 111-sr while y<=111+sr: x1 = 160+sqrt(-((y-111)**2-sr**2)) x2 = 160-sqrt(-((y-111)**2-sr**2)) set_pixel(int(x1),y,col) set_pixel(int(x2),y,col) y+=1