Ich benutze Tkinter, um ein sehr einfaches Experiment auf dem Himbeer-Kuchen zu erstellen. Ich möchte einen Stimulus auf dem Bildschirm anzeigen, ständig (so die Listenzeile meines Codes ist win.mainloop(). Bei jedem Klicken/Berühren des Stimulus sollte der Stimulus die Position ändern. Ich erzeuge die Stimulus-Positionen mit Basic Trigonometrie by doing:Wert bei jeder Iteration ändern - python 3
distance = 0.2
angle_range = list(range(0, 360, 45))
xc = (math.sin(angle_range[0] * 0.0174) * distance) + 0.5
yc = (math.cos(angle_range[0] * 0.0174) * distance) + 0.5
ich dann xc und yc positionieren sie den Reiz auf dem Bildschirm (in diesem Fall ist es als Button von tkinter behandelt wird) verwenden:
photo = PhotoImage(file="FaceStimulus.png")
Stimulus = Button(win, command=changePosition)
Stimulus.config(image=photo)
Stimulus.place(relx=xc, rely=yc)
Und schließlich der Fu nction mit der Taste zugeordnet
def changePosition():
print("Stimulus pressed")
angle_range = random.shuffle(angle_range)
In der Funktion changePosition ich für einen Shuffle der Positionen Liste fragen, was eigentlich nicht passieren. Der Stimulus behält immer seine Anfangsposition bei.
Ich vermisse wahrscheinlich einige sehr grundlegende Logik der Python-Programmierung, tut mir leid, wenn dies eine triviale Frage ist. Ich habe ein wenig online geschaut, bevor ich hier geschrieben habe, und ich finde einige Methoden, aber jedes Mal, wenn ich versuche, sie zu implementieren, laufe ich denselben logischen Fehler: Wie kann ich eine Variable immer wieder von einer Funktion definieren?
Möchten Sie, dass der Stimulus an beliebiger Stelle auf dem Bildschirm angezeigt wird oder möchten Sie, dass er auf einem vordefinierten Algorithmus basiert? @antscolony –
Ich möchte, dass die Schaltfläche in jeder zufälligen Position angezeigt wird mit einem Winkel aus der Liste (Bereich (0, 360, 45)) berechnet – antscolony