This stimulus class defines a field of dots with an update rule that determines how they change on every call to the .draw() method.
This single class can be used to generate a wide variety of dot motion types. For a review of possible types and their pros and cons see Scase, Braddick & Raymond (1996). All six possible motions they describe can be generated with appropriate choices of the signalDots (which determines whether signal dots are the ‘same’ or ‘different’ on each frame), noiseDots (which determines the locations of the noise dots on each frame) and the dotLife (which determines for how many frames the dot will continue before being regenerated).
The default settings (as of v1.70.00) is for the noise dots to have identical velocity but random direction and signal dots remain the ‘same’ (once a signal dot, always a signal dot).
For further detail about the different configurations see Dots (RDK) Component in the Builder Components section of the documentation.
If further customisation is required, then the DotStim should be subclassed and its _update_dotsXY and _newDotsXY methods overridden.
| Parameters : |
color:
colorSpace:
depth:
|
|---|
Draw the stimulus in its relevant window. You must call this method after every MyWin.flip() if you want the stimulus to appear on that frame and then update the screen again.
Add or remove a stimulus from the list of stimuli that will be automatically drawn on each flip
| Parameters : |
|
|---|
Turn on (or off) autoLogging for this stimulus.
| Parameters : |
|
|---|
Set the color of the stimulus. See Color spaces for further information about the various ways to specify colors and their various implications.
| Parameters : |
|---|
Can be specified in one of many ways. If a string is given then it is interpreted as the name of the color. Any of the standard html/X11 color names <http://www.w3schools.com/html/html_colornames.asp> can be used. e.g.:
myStim.setColor('white')
myStim.setColor('RoyalBlue')#(the case is actually ignored)
A hex value can be provided, also formatted as with web colors. This can be provided as a string that begins with # (not using python’s usual 0x000000 format):
myStim.setColor('#DDA0DD')#DDA0DD is hexadecimal for plum
You can also provide a triplet of values, which refer to the coordinates in one of the Color spaces. If no color space is specified then the color space most recently used for this stimulus is used again.
myStim.setColor([1.0,-1.0,-1.0], ‘rgb’)#a red color in rgb space myStim.setColor([0.0,45.0,1.0], ‘dkl’) #DKL space with elev=0, azimuth=45 myStim.setColor([0,0,255], ‘rgb255’) #a blue stimulus using rgb255 space
Lastly, a single number can be provided, x, which is equivalent to providing [x,x,x].
myStim.setColor(255, ‘rgb255’) #all guns o max
colorSpace : string or None
defining which of the Color spaces to use. For strings and hex values this is not needed. If None the default colorSpace for the stimulus is used (defined during initialisation).
operation : one of ‘+’,’-‘,’*’,’/’, or ‘’ for no operation (simply replace value)
for colors specified as a triplet of values (or single intensity value) the new value will perform this operation on the previous color
thisStim.setColor([1,1,1],’rgb255’,’+’)#increment all guns by 1 value thisStim.setColor(-1, ‘rgb’, ‘*’) #multiply the color by -1 (which in this space inverts the contrast) thisStim.setColor([10,0,0], ‘dkl’, ‘+’)#raise the elevation from the isoluminant plane by 10 deg
Change the direction of the signal dots (units in degrees)
Change the coherence (%) of the DotStim. This will be rounded according to the number of dots in the stimulus.
Set the stimulus orientation in degrees
Set the stimulus size [X,Y] in the specified (or inherited) units
Change the speed of the dots (in stimulus units per second)
Set this stimulus to use shaders if possible.