justingardner / mgl

A suite of mex/m files for displaying psychophysics stimuli
http://justingardner.net/mgl
Other
18 stars 22 forks source link

mglFillOval not working as expected #87

Closed jkim6704 closed 1 year ago

jkim6704 commented 1 year ago

Seems unable to draw an oval larger than 10 degrees.

% draw a small oval, works as expected mglFillOval(0,0,[1 1]); mglFlush

% 8deg oval, works as expected mglFillOval(0,0,[8 8]); mglFlush

% but this is the largest oval we can draw mglFillOval(0,0,[10 10]); mglFlush

% doesn't get bigger. mglFillOval(0,0,[12 12]); mglFlush

justingardner commented 1 year ago

Thanks for this. The code examples for the problem are very helpful. I think this is related to the problem with mglMetalArcs and I know what the problem is now, and am working on a fix. The problem has to do with the way the code sets the size of the arc. What Ben had done is to control the diameter of these objects by drawing a single vertex and settings its .point_size attribute to the desired diameter. However, this does not seem to work properly. As you note, there seems to be some maximum point_size that can be set, making the ovals not have the desired size once you go past a limit. It also explains the annulus stimulus, as the inner annulus radius was calculated as a percentage of the outside radiius, so once the outside radius hit the bound where it didn't increase the size enough, it would change the inner annulus position. I have some ideas of how to fix this, which I'm working on now...

justingardner commented 1 year ago

I believe this is working now. Please check on your side, but I am going to close.