Quiero que matlab me muestre una pantalla completa, todo en negro, y poder establecer píxeles en ella.Matlab: cómo dibujar píxeles en una pantalla completa en negro?
¿Es posible?
Quiero que matlab me muestre una pantalla completa, todo en negro, y poder establecer píxeles en ella.Matlab: cómo dibujar píxeles en una pantalla completa en negro?
¿Es posible?
No se puede hacer eso totalmente usando el código MATLAB puro. En Windows, he intentado diferentes combinaciones, pero la barra de tareas todavía estaré en la parte superior (la que tiene el botón de inicio):
%# 1)
sz = get(0, 'ScreenSize');
figure('Menubar','none', 'WindowStyle','modal', ...
'Units','pixels', 'Position', [0 0 sz(3) sz(4)])
%# 2)
figure('Menubar','none', 'Units','normalized', 'Position',[0 0 1 1])
%# 3)
hFig = figure('Menubar','none', 'Units','normalized', 'Position',[0 0 1 1]);
set(hFig, 'Units','pixels')
p = get(hFig, 'Position');
set(hFig, 'Position', [1 31 p(3) p(4)-8]);
que tendría que escribir una función MEX y llamar a la API de Win32 la directa. Afortunadamente, debe haber presentaciones existentes en FEX implementando dicha funcionalidad.
Aquí hay un ejemplo de creación de una figura de pantalla completa y puntos de dibujo con el mouse. Estoy utilizando la solución WindowAPI por Ene Simon
%# open fullscreen figure
hFig = figure('Menubar','none');
WindowAPI(hFig, 'Position','full');
%# setup axis
axes('Color','k', 'XLim',[0 1], 'YLim',[0 1], ...
'Units','normalized', 'Position',[0 0 1 1], ...
'ButtonDownFcn',@onClick)
La función de devolución de llamada:
function onClick(hObj,ev)
%# draw point
p = get(hObj,'CurrentPoint');
line(p(1,1), p(1,2), 'Color','r', 'LineStyle','none', ...
'Marker','.', 'MarkerSize',40, 'Parent',hObj)
end
Este gran WindowAPI es exactamente lo que necesitaba. ¡Gracias! – Leo
Prueba esto:
screen_size = get(0, 'ScreenSize');
buff=zeros(screen_size(3),screen_size(4));
for i=1:50
buff(screen_size(3)/2-i,screen_size(4)/2+i)=100;
end
f1 = image(buff)
colormap(gray)
set(gcf,'windowstyle','modal');
set(gcf,'OuterPosition', screen_size);
set(gcf,'position',screen_size);
set(gcf,'Units','normal', 'outerposition',[0 0 1 1])
set(gca,'Visible', 'Off', 'Position',[0 0 1 1])
Utilice Alt + F4 (o equivalente) para matar a la ventana. No entiendo completamente por qué tienes que hacerlo de esta manera, pero es la única forma que he encontrado para eliminar el marco de la ventana y hacer que la trama se extienda a pantalla completa.
Echa un vistazo psychophysics toolbox. Hace exactamente lo que estás buscando y más.
Es posible que desee upvote la respuesta que usted ha aceptado. Una respuesta aceptada con 0 votos parece extraña. – Dima