Чтобы уточнить, это вспомогательный вопрос для домашнего задания. Я уже начал это делать и упираюсь в кирпичную стену, когда дело доходит до его кодирования. Мы должны использовать то, что я сказал выше, для генерации синусоидального сигнала в графическом интерфейсе с некоторыми другими требованиями. Я думаю, что могу понять все остальное, я буквально просто не могу, хоть убей, заставить это генерироваться. Я пытаюсь вызвать класс для создания графика.
Я пытаюсь хотя бы заставить его рисовать таким образом.
##Imports
from collections import deque
import time
import math
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
##Definitions
def Timer():
return(time.perf_counter())
TimeAxis = deque(maxlen=1000)
Output = deque(maxlen=1000)
AMP = 1.2
##GUI and Graphs
window = tk.Tk()
window.title("SINE WAVE")
window.geometry('600x650')
frequencylabel = tk.Label(text="Enter Frequency Below",fg="black",bg="white")
frequencylabel.place(x=20, y=20)
amplitudelabel = tk.Label(text="Enter Amplitdue Below",fg="black",bg="white")
amplitudelabel.place(x=200, y=20)
textboxamp = tk.Entry(fg="black", bg="white", width=10)
textboxamp.place(x= 200, y =50)
windowlabel = tk.Label(text="Set Window Size Below",fg="black",bg="white")
windowlabel.place(x=370, y=20)
windowsize = 100
textboxwindow = tk.Entry(fg="black", bg="white", width=10)
textboxwindow.place(x= 370, y =50)
figWindow = Figure(figsize=(5, 5), dpi=100)
graph = FigureCanvasTkAgg(figWindow, master=window)
graph.get_tk_widget().place(x = 20,y =80)
ax = figWindow.add_subplot()
##Buttons
def Start():
textvalueamp = textboxamp.get()
textvaluewindow = textboxwindow.get()
global AMP
global windowsize
AMP = textvalueamp
windowsize = textvaluewindow
return AMP
return windowsize
def Stop():
quit()
def Clear():
quit()
StartButton = tk.Button(text="Start",command = Start)
StartButton.place(x= 20, y = 600)
ExitButton = tk.Button(text="Stop",command = Stop)
ExitButton.place(x= 120, y = 600)
ClearButton = tk.Button(text="Clear",command = Clear)
ClearButton.place(x= 220, y = 600)
##Sine Wave
class Plotting:
def __init__(self, Time, YValue):
self.Time = Time
self.YValue = YValue
def Output(self, XValue):
YValue = math.sin(XValue)
return(YValue)
Time = deque(maxlen=100)
YValue = deque(maxlen=100)
i = 0
Y = 0
Graphing = Plotting(i,Y)
for i in range(10000):
YValue.append(Graphing.Output(i/3.14))
Time.append(i)
ax.plot(list(Time), list(YValue))
ax.set_xlabel("Time (S)")
ax.set_ylabel("Power (WATTS)")
ax.set_ylim(-1*AMP, AMP)
ax.set_title("Power over Time")
ax.grid(True)
window.mainloop()
Я пытаюсь заставить синусоидальную волну двигаться, и мне сказали это сделать, нужен первый подход. Я на самом деле не пытаюсь заставить кого-то делать за меня домашнее задание, я просто не понимаю, как все это работает. Что касается опыта, я не программировал уже несколько лет, поскольку моя работа этого не требует. Я стараюсь быстро всему переучиться.
Чтобы уточнить, [b]это вспомогательный вопрос для домашнего задания[/b]. Я уже начал это делать и упираюсь в кирпичную стену, когда дело доходит до его кодирования. Мы должны использовать то, что я сказал выше, для генерации синусоидального сигнала в графическом интерфейсе с некоторыми другими требованиями. Я думаю, что могу понять все остальное, я буквально просто не могу, хоть убей, заставить это генерироваться. Я пытаюсь вызвать класс для создания графика. Я пытаюсь хотя бы заставить его рисовать таким образом. [code]import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt import tkinter as tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure
class SineWavePlotter: def __init__(self, window): self.window = window
[/code] Мой старый код, о котором профессор сказал мне, что это неправильный подход, выглядит так: [code]##Imports from collections import deque import time import math import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt import tkinter as tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure
Time = deque(maxlen=100) YValue = deque(maxlen=100) i = 0 Y = 0 Graphing = Plotting(i,Y) for i in range(10000): YValue.append(Graphing.Output(i/3.14)) Time.append(i)
window.mainloop() [/code] Я пытаюсь заставить синусоидальную волну двигаться, и мне сказали это сделать, нужен первый подход. [b]Я на самом деле не пытаюсь заставить кого-то делать за меня домашнее задание, я просто не понимаю, как все это работает.[/b] Что касается опыта, я не программировал уже несколько лет, поскольку моя работа этого не требует. Я стараюсь быстро всему переучиться.