绘制线(设置为某个值)在边框上显示不同的厚度

时间:2012-08-09 11:06:02

标签: matlab plot

我想知道为什么我的简单网格图上的边框线的粗细在左上角和右上角(比右边和底部)都不同,并且它们都比内部线条更薄,下面的代码我设置了厚度相同(set(Z,'LineWidth',3))。我非常感谢你的评论:

PS:请注意代码中拥挤的“Z = ...”位只是为了定义线条和固定点。

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=[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]);

非常感谢!

PS:玩弄渲染选项并没有完全帮助。

INCI

1 个答案:

答案 0 :(得分:1)

由于绘图限制,外框的线条较薄,即尝试xmin = ymix = -5和xmax = ymax = 605。这是因为线条厚度超过1像素并且以0或600为中心,因此限制会削减一些额外的像素。