The thickness of border lines on a plot (different than that of the inner lines)

15 vues (au cours des 30 derniers jours)
inci
inci le 9 Août 2012
Dear All,
I was wondering why the thickness of the border lines on my simple grid plot are different on the left and top corners (than right and bottom) and they are all thinner than the inner lines with the following code in which I set the thickness the same for all (set(Z, 'LineWidth', 3)). I would so much appreciate your comments:
PS: Please note that the crowded "Z=..." bit on the code is just to define the lines and the fixation spot.
set(gcf,'doublebuffer','on');
set(gcf,'units','normalized','outerposition',[0 0 1 1]);
set(gcf,'Color',[1 1 1]);
k=1;
rannum1(1)=0;
rannum2(1)=0;
x_min=0; x_max=600; y_min=0; y_max=600;
%r=topleft corner point, s=topright corner, m=bottomleft corner,
%n=bottomright corner
r=[0 600]; s=[600 600]; m= [0 0]; n= [600 0];
Z=plot([r(1) s(1)], [r(2), s(2)] , '-black', [r(1) m(1)], [r(2), m(2)] , '-black', [m(1) n(1)], [m(2), n(2)] , '-black', [s(1) n(1)], [s(2), n(2)] , '-black', [(r(1)+s(1))/2 (((r(1)+s(1)+m(1)+n(1))/4)+rannum1(k))], [(r(2)+s(2))/2 (((r(2)+s(2)+m(2)+n(2))/4)+rannum2(k))], '-black', [(((r(1)+s(1)+m(1)+n(1))/4)+rannum1(k)) (m(1)+n(1))/2], [(((r(2)+s(2)+m(2)+n(2))/4)+rannum2(k)) (m(2)+n(2))/2], '-black', [(r(1)+m(1))/2 (((r(1)+s(1)+m(1)+n(1))/4)+rannum1(k))], [(r(2)+m(2))/2 (((r(2)+s(2)+m(2)+n(2))/4)+rannum2(k))] , '-black', [(((r(1)+s(1)+m(1)+n(1))/4)+rannum1(k)) (s(1)+n(1))/2], [(((r(2)+s(2)+m(2)+n(2))/4)+rannum2(k)) (s(2)+n(2))/2], '-black', 300, 300, 'o', 'MarkerEdgeColor','none','MarkerFaceColor','r', 'MarkerSize',12);
set(Z, 'LineWidth', 3);
axis([x_min x_max y_min y_max]);
axis square
axis off
set(gca, 'visible', 'off', 'units', 'normalized', 'position', [0.200 0.230 0.60 0.60]);
Thank you very much!
inci

Réponses (1)

Sebastian Holmqvist
Sebastian Holmqvist le 9 Août 2012
Modifié(e) : Sebastian Holmqvist le 9 Août 2012
I found that the figure automatically chooses the renderer ZBuffer, which is the cause of your display issues. I can't answer as to why it's not rendering properly, but manually setting the renderer to either 'Painter' or 'OpenGL' does the trick!
set(gcf, 'renderer', 'opengl')
or
set(gcf, 'renderer', 'painter')
  2 commentaires
inci
inci le 9 Août 2012
Modifié(e) : inci le 9 Août 2012
Hi, thanks a lot for the tip!
Now my fixation spot is on behind of the lines, though. And the border lines, although they are uniform, are about half thick as the inner lines.
(using opengl this is. painter did not do the trick).
Sebastian Holmqvist
Sebastian Holmqvist le 9 Août 2012
This is because of the different way each renderer draws the picture.
"OpenGL and Zbuffer renderers display objects sorted in front to back order, as seen on the monitor, and lines always draw in front of faces when at the same location on the plane of the monitor. Painters sorts by child order (order specified)."
So try plotting the center in a separate plot, or earlier in your current plot-spec.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by