2016-05-31 10 views
0

Ich arbeite in Psychopy und möchte ein Text-Stim von einer Position zur anderen über den Verlauf von mehreren Frames gleiten lassen. Ich habe versucht, die [frameN, 0] in der Position Abschnitt für den Text stim, aber ich bin mir nicht sicher, wie man einen Endpunkt (Zeit/Frames und Position). Vielen Dank für Hilfe im Voraus!Psychopy-moving textstim mit Endpunkt

Antwort

1

Beginnen Sie mit der Berechnung der Schrittgröße für jeden Rahmen. Es ist nur der Unterschied zwischen den Start- und Anfangskoordinaten geteilt durch die Anzahl der Frames. numpy Arrays ist praktisch hier, obwohl Sie es in der Basis Python tun könnten auch:

import numpy as np 
start_pos = np.array([-0.5, 0]) # [x, y] norm units in this case where TextSTim inherits 'units' from the Window, which has 'norm' as default. 
end_pos = np.array([0.5, 0.5]) 
animation_duration = 30 # duration in number of frames 
step_pos = (end_pos - start_pos)/animation_duration 

es dann zum Einsatz:

# Set up psychopy stuff 
from psychopy import visual 
win = visual.Window() 
text = visual.TextStim(win, text='Watch me slide!') 

# Animate 
text.pos = start_pos 
for i in range(animation_duration): 
    text.pos += step_pos # add to existing value. This is shorthand for writing: text_pos = text.pos + step_pos 
    text.draw() 
    win.flip()