创建一个平滑meshgrid

11视图(30天)
Maheen西迪基
Maheen西迪基 2017年8月4日
编辑: 约翰D 'Errico 2017年8月4日
我使用棋盘的Matlab函数创建一个棋盘,然后显示它是一个圆而不是正方形或长方形。我写了下面的代码来做这件事,而是因为我的meshgrid似乎那么粗,当我做imshow(检查)你可以看到圆的边缘锯齿状,不光滑。谁能告诉我如何解决这个问题?
或者,为什么我有这样一个小meshgrid是我需要从棋盘K矩阵生成很小的我希望有显示更少的棋盘,让它看起来好像广场有一个大的距离。如果有人知道这样做的方法创建meshgrid没有,也会工作。
这是我的部分脚本使用Psychtoolbox所以我有点限制我能做什么。一旦创建了检查我使用它来生成纹理绘制到屏幕上同时扩展它,让它更大。
谁能帮忙吗?
代码:
K =棋盘(9);%使用Matlab棋盘函数创建一个棋盘
K = K(第1章,第1章);%使用棋盘的一小部分我想有一个宽线之间的距离
提出= [0.48 0.48 0.48;0.54 0.54 0.54);%彩色地图颜色灰色
bw1 = ind2rgb (uint8 (K),提出);
白色= 1;
灰色=白/ 2;
rcycles = 8;
%现在我们棋盘模式
xylim = 1;
(x, y) = meshgrid (-1.25:0.0932:1.25, -1.25:0.0932:1.25);
检查= bw1;
圆= x。y ^ 2 +。^ 2 < = xylim ^ 2;
检查=圆。*检查+灰色* ~圆;
imshow(检查);

答案(1)

约翰D 'Errico
约翰D 'Errico 2017年8月4日
编辑:约翰D 'Errico 2017年8月4日
嗯,说真的,你希望什么?您已经创建了一个与27平方晶格节点在每个维度。你使用更多的点,你会有一个更精细的网格,需要更多时间和内存来生成和使用。与一个真正的好足够的格子,你可能不会注意到锯齿。毕竟,照片可以平滑曲线,但这只是因为他们有很小的像素。但是你期望只有27个节点?
你正在与本质上是一个图像。像素是方形的。没有所谓的弧形边缘像素。
顺便说一下,用linspace相反!
x = -1.25:0.0932:1.25
x =
1到13
-1.25 -1.1568 -1.0636 -0.9704 -0.8772 -0.784 -0.6908 -0.5976 -0.5044 -0.4112 -0.318 -0.2248 -0.1316
14到26
-0.0384 0.0548 0.148 0.2412 0.3344 0.4276 0.5208 0.614 0.7072 0.8004 0.8936 0.9868 1.08
27
1.1732
正如您可以看到的,最后一点不是1.25。它是1.1732。即使你使用了更准确的步伐比0.0932,它仍然不会给你正确的最后一点。使用LINSPACE !

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!