psychopy.visual.Line
from psychopy import visual
myWin = visual.Window([400,300], monitor="testMonitor", units="deg")
line = visual.Line(
myWin,
start=(-0.5, -0.5),
end=(0.5, 0.5),
lineWidth=5,
lineColorSpace='rgb255',
lineColor=(0,255,0)
)
for i in range(300):
line.draw()
myWin.flip()
引数がいっぱいある。全部の引数を省略しても、デフォルト値で何かしらの線を書いてれる。引数の大部分を削ったものが上記。上記コードをコピペすればそのまま実行できると思います。実行すると右肩上がりの緑の直線が5秒ほど表示されて消えると思います。300フレーム表示するので、60Hzのディスプレイだと300/60=5秒。場合によってはその半分。
大抵、座標を指定して線をひきたいと思うので、
- start=(-0.5, -0.5), #開始座標
- end=(0.5, 0.5), #終端座標
は明示的に指定することになる。
色を変えたい場合は、
- lineColor=(0, 1, 0),
というふうに指定する。PsychoPyは色の指定方法が複数あって、'rgb'方式で指定する場合は、RGBのそれぞれを、-1から1の範囲で指定する。colorやcolorSpaceというパラメーターがあるが、指定しても変化がなかった。
色についてはこちら
RGBを -1から1で指定するのに慣れていない人は、colorSpace = 'rgb255' と指定して、0から255の範囲で指定できる。以下、 https://psychopy.org/api/visual/line.html より抜粋
# うす緑の文字列
stim = visual.TextStim(win, 'Color me!',
color=(0, 1, 0), colorSpace='rgb')
# ほとんど黒の文字列
stim.colorSpace = 'rgb255'
# もう一度うす緑
stim.color = (128, 255, 128)
ちなみに、色については、色名や #00AAFF という風にも指定できる。https://www.psychopy.org/general/colours.htmlより抜粋
stim = visual.GratingStim(win, color=[1,-1,-1], colorSpace='rgb') #will be red
stim.setColor('Firebrick')#one of the web/X11 color names
stim.setColor('#FFFAF0')#an off-white
stim.setColor([0,90,1], colorSpace='dkl')#modulate along S-cone axis in isoluminant plane
stim.setColor([1,0,0], colorSpace='lms')#modulate only on the L cone
stim.setColor([1,1,1], colorSpace='rgb')#all guns to max
stim.setColor([1,0,0])#this is ambiguous - you need to specify a color space
色空間の指定オプション こちらより抜粋
- 'named' blue # A named colour space
- 'hex' #00FF99' # Hex
- 'rgb' (1, 0, -1)# RGB from -1 to 1
- 'rgba': (1, 0, -1, 0.5) # RGB + alpha from -1 to 1
- 'rgb1': # RGB from 0 to 1
- 'rgb255': (0, 124,255) # RGB from 0 to 255
- 'hsv': [infrange(0, 360, 1), infrange(0, 1), infrange(0, 1)], # HSV with hue from 0 to 360 and saturation/vibrancy from 0 to 1
- 'lms': # LMS from -1 to 1
- 'dkl': # DKL placeholder: Accepts any values
ほかにもいろいろ(ソースまで読まないとでてこない)
- 'rgba1': # RGB + alpha from 0 to 1
- 'rgba255': # RGB + alpha from 0 to 255
- 'hsva': # HSV with hue from 0 to 360 and saturation/vibrancy from 0 to 1 + alpha from 0 to 1
- 'rec709TFa': # rec709TF adjusted RGB from -4.5 to 1 + alpha from 0 to 1
- 'srgb': # srgb from -1 to 1
- 'srgba': [infrange(-1, 1), infrange(-1, 1), infrange(-1, 1), infrange(0, 1)], # srgb from -1 to 1 + alpha from 0 to 1
- 'lmsa': # LMS + alpha from 0 to 1
- 'dkla': # DKLA placeholder: Accepts any values + alpha from 0 to 1
- 'dklCart': # Cartesian DKL placeholder: Accepts any values
- 'dklaCart': # Cartesian DKLA placeholder: Accepts any values + alpha from 0 to 1
web/X11 color names については こちら https://www.w3schools.com/Colors/colors_names.aspを見よ
color codeは こちら https://html-color-codes.com/を見よ