我是psychtoolbox的新手并试图将我的框架方块旋转/绘制成菱形/菱形,但无法弄清楚它是如何工作的。这是我的代码:
AssertOpenGL;
screenNo = max(Screen('Screens'));
screenRes = [0 0 640 480];
Screen('Preference', 'SkipSyncTests', 2);
ListenChar(2);
[win, rect] = Screen('OpenWindow', screenNo, [0 0 0], screenRes);
[width, height]=Screen('WindowSize', win);
[x,y] = RectCenter(rect);
baseRect = [0 0 250 250];
centeredRect = CenterRectOnPointd(baseRect, x, y);
Screen('FrameRect', win, [255 255 255], centeredRect, 3);
Screen('Flip', win);
KbWait;
sca;
我尝试将baseRect更改为[320 115 320 365],但它不起作用。如果我想要钻石/菱形,不太确定如何指定[left,top,right,bottom]坐标。
感谢您的帮助。
答案 0 :(得分:0)
FrameRect函数只会构造直立的矩形。您可以从矩形创建纹理,然后在显示时旋转它。或者,您可以指定钻石每个边缘的坐标,然后使用' FramePoly'功能。例如:
presentAlert(createAlert("Title", message: "Your message here"))
答案 1 :(得分:0)
您可以使用以下函数转换psychtoolbox绘制的基元:
Screen('glPushMatrix', windowPtr);
Screen('glPopMatrix', windowPtr);
Screen('glLoadIdentity', windowPtr);
Screen('glTranslate', windowPtr, tx, ty [, tz]);
Screen('glScale', windowPtr, sx, sy [, sz]);
Screen('glRotate', windowPtr, angle, [rx = 0], [ry = 0] ,[rz = 1]);
然后您可以继续使用Screen('FrameRect')