2

我正在尝试使用 MATLAB 矩形函数绘制 256 个小方块。如果我正在绘制 10 个正方形,那么以下方法可以正常工作:

for i=1:2:40

rectangle('Position',[5,3+i,0.3,0.3],...
      'Curvature',[0,0],...
     'LineStyle','-', 'faceColor', 'black')

end

axis off; 

daspect([1,1,1])

在此处输入图像描述

但是当我将 for 循环的最后一个值更改为 512(绘制 256 个正方形)时,它无法正确打印:

在此处输入图像描述

这是上图一部分的放大版本: 在此处输入图像描述

这张图片清楚地显示了某处的某些地方是错误的,因为正方形的边并不完全相等,并且正方形的尺寸变得越来越小,因为没有更高的数字。of squares : 谁能帮我画出尺寸不缩小的完美正方形,?(我的内存没有任何问题,我可以容忍多个页面向下滚动以覆盖整个正方形)

4

2 回答 2

5

这是一种经典的莫尔效应。您不能在显示器上显示那么多矩形,因为没有足够的像素。Matlab 为您做了一些下采样。因此,你得到另一个频率,它原本不存在。

于 2012-05-16T14:39:33.060 回答
3

我尝试了您的代码,即使循环进行 512 次迭代,它也能正常工作 - 当您放大最终的 matlab 图形时。您描述的伪影可能是由显示器分辨率或导出到非矢量文件时的低分辨率引起的。

尝试将图像导出为矢量文件(eps 或 svg),以查看放大时一切看起来都很好。

于 2012-05-16T12:48:41.163 回答