-
Notifications
You must be signed in to change notification settings - Fork 0
/
059.ParabolaAndCircle.py
54 lines (44 loc) · 1.43 KB
/
059.ParabolaAndCircle.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import tkinter
import math
def parabola(page,size):
for x in range(size):
y = x*x/size
plot(page,x,y)
plot(page,-x,y)
def draw_axes(page):
page.update()
x_origin = page.winfo_width() / 2
y_origin = page.winfo_height() / 2
page.configure(scrollregion=(-x_origin,-y_origin,x_origin,y_origin))
page.create_line(-x_origin,0,x_origin,0,fill="black")
page.create_line(0,y_origin,0,-y_origin,fill="black")
print(locals())
def circle(page,radius,g,h,colour="red"):
page.create_oval(g+radius,h+radius,g-radius,h-radius,outline=colour,width=2)
# for x in range (g*100,(g+radius)*100):
# x /= 100
# y = h + (math.sqrt(radius**2-((x-g)**2)))
# plot(page, x, y)
# plot(page, x, 2*h-y)
# plot(page, 2*g-x, y)
# plot(page, 2*g-x, 2*h-y)
def plot(page,x,y):
page.create_line(x,-y,x+1,-(y+1),fill="red")
mainWindow = tkinter.Tk()
mainWindow.title("Parabola")
mainWindow.geometry("640x480")
canvas = tkinter.Canvas(mainWindow,width=640,height=480)
canvas.grid(row=0,column=0)
draw_axes(canvas)
parabola(canvas,100)
parabola(canvas,200)
circle(canvas,100,100,100,"green")
circle(canvas,100,100,-100,"yellow")
circle(canvas,100,-100,100,"blue")
circle(canvas,100,-100,-100)
circle(canvas,10,30,30,"white")
circle(canvas,10,30,-30,"black")
circle(canvas,10,-30,30,"grey")
circle(canvas,10,-30,-30,"orange")
circle(canvas,30,0,0,"pink")
mainWindow.mainloop()