def start_animation(): global reset, reset_z, num, gap, x, offset, canvas3, x2, canvas4 get_result() reset = True start_button.config(state='disable') pause_button.config(state='normal') reset_button.config(state='normal') gap_slider.config(state='disable') screen_offset_slider.config(state='disable') gap_calculation_value() offset_calculation_value() gap = gap * 100 offset = ((offset * 100) - 100) * 2 for i in range(1, 8): colour_choice[i].config(state='disable') while reset == True: if reset == True and status == True: if num == 1: if x == 50: x = 70 if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSr.barrier(canvas2, gap) # screen(canvas) SSr.screen(canvas2, offset) # screen2(canvas, colour) SSr.screen2(canvas2, 'red') # red_scene_1(canvas, wavelength, colour, x) SSr.red_scene_1(canvas2, 60, 'red', x) canvas2.create_text(102, 75, text='665nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(131, 80, 131, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 131, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(124, 88, 131, 85, fill='black') canvas2.create_line(124, 82, 131, 85, fill='black') x += 1 elif x > 250: #canvas2.delete(SSr.barrier) #canvas2.delete(SSr.screen2) canvas2.delete('all') # barrier(canvas, gap_size) SSr.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSr.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSr.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, (10 + gap), 'red') # screen2(canvas, colour) SSr.screen2(canvas2, 'red') # red_scene_2(canvas, colour, gap_size, a) SSr.red_scene_2(canvas2, 'red', gap, reset_z, offset) canvas2.create_text(102, 75, text='665nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(131, 80, 131, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 131, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(124, 88, 131, 85, fill='black') canvas2.create_line(124, 82, 131, 85, fill='black') reset_z = False # Window --------------------------------------------------------- root.after(7) canvas2.update() elif num == 2: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSo.barrier(canvas2, gap) # screen(canvas) SSo.screen(canvas2, offset) # screen2(canvas, colour) SSo.screen2(canvas2, 'dark orange') # red_scene_1(canvas, wavelength, colour, x) SSo.orange_scene_1(canvas2, 55, 'dark orange', x) canvas2.create_text(62, 75, text='630nm', fill='black') # Vertical lines canvas2.create_line(31, 80, 31, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(31, 85, 91, 85, fill='black') #Arrow canvas2.create_line(31, 85, 38, 88, fill='black') canvas2.create_line(31, 85, 38, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSo.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSo.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSo.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'orange') # screen2(canvas, colour) SSo.screen2(canvas2, 'dark orange') # red_scene_2(canvas, colour, gap_size, a) SSo.orange_scene_2(canvas2, 'dark orange', gap, reset_z, offset) canvas2.create_text(62, 75, text='630nm', fill='black') # Vertical lines canvas2.create_line(31, 80, 31, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(31, 85, 91, 85, fill='black') #Arrow canvas2.create_line(31, 85, 38, 88, fill='black') canvas2.create_line(31, 85, 38, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 3: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSy.barrier(canvas2, gap) # screen(canvas) SSy.screen(canvas2, offset) # screen2(canvas, colour) SSy.screen2(canvas2, 'yellow') # red_scene_1(canvas, wavelength, colour, x) SSy.yellow_scene_1(canvas2, 50, 'yellow', x) canvas2.create_text(77, 75, text='600nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 101, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(94, 88, 101, 85, fill='black') canvas2.create_line(94, 82, 101, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSy.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSy.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSy.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'yellow') # screen2(canvas, colour) SSy.screen2(canvas2, 'yellow') # red_scene_2(canvas, colour, gap_size, a) SSy.yellow_scene_2(canvas2, 'yellow', gap, reset_z, offset) canvas2.create_text(77, 75, text='600nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 101, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(94, 88, 101, 85, fill='black') canvas2.create_line(94, 82, 101, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 4: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSg.barrier(canvas2, gap) # screen(canvas) SSg.screen(canvas2, offset) # screen2(canvas, colour) SSg.screen2(canvas2, 'teal') # red_scene_1(canvas, wavelength, colour, x) SSg.green_scene_1(canvas2, 45, 'teal', x) SSg.screen2(canvas2, 'teal') canvas2.create_text(97, 75, text='550nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(121, 80, 121, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 121, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(114, 88, 121, 85, fill='black') canvas2.create_line(114, 82, 121, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSg.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSg.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSg.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'teal') # screen2(canvas, colour) SSg.screen2(canvas2, 'teal') # red_scene_2(canvas, colour, gap_size, a) SSg.green_scene_2(canvas2, 'teal', gap, reset_z, offset) SSg.screen2(canvas2, 'teal') canvas2.create_text(97, 75, text='550nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(121, 80, 121, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 121, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(114, 88, 121, 85, fill='black') canvas2.create_line(114, 82, 121, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 5: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSb.barrier(canvas2, gap) # screen(canvas) SSb.screen(canvas2, offset) # screen2(canvas, colour) SSb.screen2(canvas2, 'blue') # red_scene_1(canvas, wavelength, colour, x) SSb.blue_scene_1(canvas2, 40, 'blue', x) canvas2.create_text(75, 75, text='470nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 91, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSb.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSb.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSb.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'blue') # screen2(canvas, colour) SSb.screen2(canvas2, 'blue') # red_scene_2(canvas, colour, gap_size, a) SSb.blue_scene_2(canvas2, 'blue', gap, reset_z, offset) canvas2.create_text(75, 75, text='470nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 91, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 6: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSi.barrier(canvas2, gap) # screen(canvas) SSi.screen(canvas2, offset) # screen2(canvas, colour) SSi.screen2(canvas2, 'indigo') # red_scene_1(canvas, wavelength, colour, x) SSi.indigo_scene_1(canvas2, 35, 'indigo', x) canvas2.create_text(65, 75, text='425nm', fill='black') # Vertical lines canvas2.create_line(41, 80, 41, 90, fill='black') canvas2.create_line(76, 80, 76, 90, fill='black') # Horizontal Line canvas2.create_line(41, 85, 76, 85, fill='black') #Arrow canvas2.create_line(41, 85, 48, 88, fill='black') canvas2.create_line(41, 85, 48, 82, fill='black') canvas2.create_line(69, 88, 76, 85, fill='black') canvas2.create_line(69, 82, 76, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSi.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSi.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSi.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'indigo') # screen2(canvas, colour) SSi.screen2(canvas2, 'indigo') # red_scene_2(canvas, colour, gap_size, a) SSi.indigo_scene_2(canvas2, 'indigo', gap, reset_z, offset) canvas2.create_text(65, 75, text='425nm', fill='black') # Vertical lines canvas2.create_line(41, 80, 41, 90, fill='black') canvas2.create_line(76, 80, 76, 90, fill='black') # Horizontal Line canvas2.create_line(41, 85, 76, 85, fill='black') #Arrow canvas2.create_line(41, 85, 48, 88, fill='black') canvas2.create_line(41, 85, 48, 82, fill='black') canvas2.create_line(69, 88, 76, 85, fill='black') canvas2.create_line(69, 82, 76, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 7: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSp.barrier(canvas2, gap) # screen(canvas) SSp.screen(canvas2, offset) # screen2(canvas, colour) SSp.screen2(canvas2, 'violet') # red_scene_1(canvas, wavelength, colour, x) SSp.purple_scene_1(canvas2, 30, 'violet', x) SSp.screen2(canvas2, 'violet') canvas2.create_text(95, 75, text='400nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 101, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(93, 88, 100, 85, fill='black') canvas2.create_line(93, 82, 100, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSp.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSp.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=576 + offset, y=55) SSp.colour_screen(canvas3) x2 += 1 canvas4 = Tkinter.Canvas(upper_frame, width=210, height=340, bg='black', highlightbackground='black') canvas4.place(x=687, y=56) graph_label = Tkinter.Label( canvas4, text='Colour Intensity \nGraph', bg='black', fg='white', font=('Arial', 20)) graph_label.place(x=10, y=140) f = Figure(figsize=(2.1, 3.40), dpi=100) a = f.add_subplot(111) f.subplots_adjust(left=0, bottom=0, right=1, top=1, wspace=0, hspace=0) f.set_facecolor('black') graph_canvas = FigureCanvasTkAgg(f, master=canvas4) graph_canvas.get_tk_widget().place(x=2, y=0) SSG.SS_Graph1(graph_canvas, a, 10, 'violet') # screen2(canvas, colour) SSp.screen2(canvas2, 'violet') # red_scene_2(canvas, colour, gap_size, a) SSp.purple_scene_2(canvas2, 'violet', gap, reset_z, offset) canvas2.create_text(95, 75, text='400nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 101, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(93, 88, 100, 85, fill='black') canvas2.create_line(93, 82, 100, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() else: reset_animation() return tkMessageBox.showinfo('Colour Error', 'Please choose a colour') else: break
def start_animation(): global reset, reset_z, num, gap, x, offset, canvas3, x2 get_result() reset = True start_button.config(state='disable') pause_button.config(state='normal') reset_button.config(state='normal') gap_slider.config(state='disable') screen_offset_slider.config(state='disable') gap_calculation_value() offset_calculation_value() gap = gap * 100 offset = ((offset * 100) - 100) * 2 for i in range(1, 8): colour_choice[i].config(state='disable') while reset == True: if reset == True and status == True: if num == 1: if x == 50: x = 70 if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSr.barrier(canvas2, gap) # screen(canvas) SSr.screen(canvas2, offset) # screen2(canvas, colour) SSr.screen2(canvas2, 'red') # red_scene_1(canvas, wavelength, colour, x) SSr.red_scene_1(canvas2, 60, 'red', x) canvas2.create_text(102, 75, text='665nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(131, 80, 131, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 131, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(124, 88, 131, 85, fill='black') canvas2.create_line(124, 82, 131, 85, fill='black') x += 1 elif x > 250: #canvas2.delete(SSr.barrier) #canvas2.delete(SSr.screen2) canvas2.delete('all') # barrier(canvas, gap_size) SSr.barrier(canvas2, gap) # screen(canvas) if x2 < 290 + offset: SSr.screen(canvas2, offset) x2 += 1 if x2 == 290 + offset: canvas3 = Tkinter.Canvas(upper_frame, width=45, height=335, bg='light grey', highlightbackground='black') canvas3.place(x=575 + offset, y=55) SSr.colour_screen(canvas3) x2 += 1 # screen2(canvas, colour) SSr.screen2(canvas2, 'red') # red_scene_2(canvas, colour, gap_size, a) SSr.red_scene_2(canvas2, 'red', gap, reset_z, offset) canvas2.create_text(102, 75, text='665nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(131, 80, 131, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 131, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(124, 88, 131, 85, fill='black') canvas2.create_line(124, 82, 131, 85, fill='black') reset_z = False # Window --------------------------------------------------------- root.after(7) canvas2.update() elif num == 2: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSo.barrier(canvas2, gap) # screen(canvas) SSo.screen(canvas2, offset) # screen2(canvas, colour) SSo.screen2(canvas2, 'orange') # red_scene_1(canvas, wavelength, colour, x) SSo.orange_scene_1(canvas2, 55, 'orange', x) canvas2.create_text(62, 75, text='630nm', fill='black') # Vertical lines canvas2.create_line(31, 80, 31, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(31, 85, 91, 85, fill='black') #Arrow canvas2.create_line(31, 85, 38, 88, fill='black') canvas2.create_line(31, 85, 38, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSo.barrier(canvas2, gap) # screen(canvas) SSo.screen(canvas2, offset) # screen2(canvas, colour) SSo.screen2(canvas2, 'orange') # red_scene_2(canvas, colour, gap_size, a) SSo.orange_scene_2(canvas2, 'orange', gap, reset_z, offset) canvas2.create_text(62, 75, text='630nm', fill='black') # Vertical lines canvas2.create_line(31, 80, 31, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(31, 85, 91, 85, fill='black') #Arrow canvas2.create_line(31, 85, 38, 88, fill='black') canvas2.create_line(31, 85, 38, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 3: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSy.barrier(canvas2, gap) # screen(canvas) SSy.screen(canvas2, offset) # screen2(canvas, colour) SSy.screen2(canvas2, 'yellow') # red_scene_1(canvas, wavelength, colour, x) SSy.yellow_scene_1(canvas2, 50, 'yellow', x) canvas2.create_text(77, 75, text='600nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 101, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(94, 88, 101, 85, fill='black') canvas2.create_line(94, 82, 101, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSy.barrier(canvas2, gap) # screen(canvas) SSy.screen(canvas2, offset) # screen2(canvas, colour) SSy.screen2(canvas2, 'yellow') # red_scene_2(canvas, colour, gap_size, a) SSy.yellow_scene_2(canvas2, 'yellow', gap, reset_z, offset) canvas2.create_text(77, 75, text='600nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 101, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(94, 88, 101, 85, fill='black') canvas2.create_line(94, 82, 101, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 4: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSg.barrier(canvas2, gap) # screen(canvas) SSg.screen(canvas2, offset) # screen2(canvas, colour) SSg.screen2(canvas2, 'teal') # red_scene_1(canvas, wavelength, colour, x) SSg.green_scene_1(canvas2, 45, 'teal', x) SSg.screen2(canvas2, 'teal') canvas2.create_text(97, 75, text='550nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(121, 80, 121, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 121, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(114, 88, 121, 85, fill='black') canvas2.create_line(114, 82, 121, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSg.barrier(canvas2, gap) # screen(canvas) SSg.screen(canvas2, offset) # screen2(canvas, colour) SSg.screen2(canvas2, 'teal') # red_scene_2(canvas, colour, gap_size, a) SSg.green_scene_2(canvas2, 'teal', gap, reset_z, offset) SSg.screen2(canvas2, 'teal') canvas2.create_text(97, 75, text='550nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(121, 80, 121, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 121, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(114, 88, 121, 85, fill='black') canvas2.create_line(114, 82, 121, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 5: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSb.barrier(canvas2, gap) # screen(canvas) SSb.screen(canvas2, offset) # screen2(canvas, colour) SSb.screen2(canvas2, 'blue') # red_scene_1(canvas, wavelength, colour, x) SSb.blue_scene_1(canvas2, 40, 'blue', x) canvas2.create_text(75, 75, text='470nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 91, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSb.barrier(canvas2, gap) # screen(canvas) SSb.screen(canvas2, offset) # screen2(canvas, colour) SSb.screen2(canvas2, 'blue') # red_scene_2(canvas, colour, gap_size, a) SSb.blue_scene_2(canvas2, 'blue', gap, reset_z, offset) canvas2.create_text(75, 75, text='470nm', fill='black') # Vertical lines canvas2.create_line(51, 80, 51, 90, fill='black') canvas2.create_line(91, 80, 91, 90, fill='black') # Horizontal Line canvas2.create_line(51, 85, 91, 85, fill='black') #Arrow canvas2.create_line(51, 85, 58, 88, fill='black') canvas2.create_line(51, 85, 58, 82, fill='black') canvas2.create_line(84, 88, 91, 85, fill='black') canvas2.create_line(84, 82, 91, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 6: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSi.barrier(canvas2, gap) # screen(canvas) SSi.screen(canvas2, offset) # screen2(canvas, colour) SSi.screen2(canvas2, 'indigo') # red_scene_1(canvas, wavelength, colour, x) SSi.indigo_scene_1(canvas2, 35, 'indigo', x) canvas2.create_text(65, 75, text='425nm', fill='black') # Vertical lines canvas2.create_line(41, 80, 41, 90, fill='black') canvas2.create_line(76, 80, 76, 90, fill='black') # Horizontal Line canvas2.create_line(41, 85, 76, 85, fill='black') #Arrow canvas2.create_line(41, 85, 48, 88, fill='black') canvas2.create_line(41, 85, 48, 82, fill='black') canvas2.create_line(69, 88, 76, 85, fill='black') canvas2.create_line(69, 82, 76, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSi.barrier(canvas2, gap) # screen(canvas) SSi.screen(canvas2, offset) # screen2(canvas, colour) SSi.screen2(canvas2, 'indigo') # red_scene_2(canvas, colour, gap_size, a) SSi.indigo_scene_2(canvas2, 'indigo', gap, reset_z, offset) canvas2.create_text(65, 75, text='425nm', fill='black') # Vertical lines canvas2.create_line(41, 80, 41, 90, fill='black') canvas2.create_line(76, 80, 76, 90, fill='black') # Horizontal Line canvas2.create_line(41, 85, 76, 85, fill='black') #Arrow canvas2.create_line(41, 85, 48, 88, fill='black') canvas2.create_line(41, 85, 48, 82, fill='black') canvas2.create_line(69, 88, 76, 85, fill='black') canvas2.create_line(69, 82, 76, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() elif num == 7: if x <= 250: canvas2.delete('all') # barrier(canvas, gap_size) SSp.barrier(canvas2, gap) # screen(canvas) SSp.screen(canvas2, offset) # screen2(canvas, colour) SSp.screen2(canvas2, 'violet') # red_scene_1(canvas, wavelength, colour, x) SSp.purple_scene_1(canvas2, 30, 'violet', x) SSp.screen2(canvas2, 'violet') canvas2.create_text(95, 75, text='400nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 101, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(93, 88, 100, 85, fill='black') canvas2.create_line(93, 82, 100, 85, fill='black') x += 1 elif x > 250: canvas2.delete('all') # barrier(canvas, gap_size) SSp.barrier(canvas2, gap) # screen(canvas) SSp.screen(canvas2, offset) # screen2(canvas, colour) SSp.screen2(canvas2, 'violet') # red_scene_2(canvas, colour, gap_size, a) SSp.purple_scene_2(canvas2, 'violet', gap, reset_z, offset) canvas2.create_text(95, 75, text='400nm', fill='black') # Vertical lines canvas2.create_line(71, 80, 71, 90, fill='black') canvas2.create_line(101, 80, 101, 90, fill='black') # Horizontal Line canvas2.create_line(71, 85, 101, 85, fill='black') #Arrow canvas2.create_line(71, 85, 78, 88, fill='black') canvas2.create_line(71, 85, 78, 82, fill='black') canvas2.create_line(93, 88, 100, 85, fill='black') canvas2.create_line(93, 82, 100, 85, fill='black') reset_z = False # Window -------------------------------------------------------- root.after(7) canvas2.update() else: reset_animation() return tkMessageBox.showinfo('Colour Error', 'Please choose a colour') else: break