我正在使用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