我正在使用Tkinter在樹莓派上構建一個非常簡單的基於屏幕的實驗。我想在屏幕上不斷顯示一個刺激(所以我的代碼列表是win.mainloop()。在每次點擊/觸摸刺激時,刺激都應該改變位置,我用basic三角通過執行:每次迭代更改值 - 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
我然後使用XC和YC來定位屏幕上的刺激(在這種情況下,將被視爲由Tkinter的一個按鈕):
photo = PhotoImage(file="FaceStimulus.png")
Stimulus = Button(win, command=changePosition)
Stimulus.config(image=photo)
Stimulus.place(relx=xc, rely=yc)
最後是fu nction與按鈕
def changePosition():
print("Stimulus pressed")
angle_range = random.shuffle(angle_range)
在功能changePosition我問的位置列表,它並沒有真正發生的洗牌有關。刺激始終保持其初始狀態。
我可能會缺少一些Python編程的基本邏輯,對不起,如果這是一個微不足道的問題。在寫這裏之前,我看起來有點在線,我發現了一些方法,但每次我嘗試實現它們時,都會運行相同的邏輯錯誤:如何從函數中重複定義一個變量?
您是否希望刺激顯示在屏幕上的任意位置,或者您是否希望基於某種預定義的算法顯示它? @antscolony –
我想按鈕顯示在任何隨機位置計算與從列表中提取的角度(範圍(0,360,45)) – antscolony