Ich verwende die Matlab-Funktion checkerboard
, um ein Schachbrett zu erstellen und es dann als Kreis und nicht als Quadrat oder Rechteck darzustellen. Ich habe den Code unten geschrieben, um dies zu tun, aber weil mein Meshgrid so grob zu sein scheint, wenn ich mache imshow(checks)
können Sie sehen, dass die Kanten des Kreises gezackt und überhaupt nicht glatt sind. Kann mir jemand sagen, wie ich dieses Problem überwinden kann?Erstellen eines glatten Gitternetzes in Matlab
Alternativ kann der Grund, warum ich so ein kleines meshgrid eingestellt gehabt haben, ist, dass ich die K
Matrix aus checkerboard
erzeugt brauchen wirklich klein zu sein, wie ich es will weniger des Schachbrett angezeigt werden, um es als ob die Quadrate erscheinen habe eine größere Entfernung. Wenn jemand einen Weg kennt, dies zu tun, ohne ein Meshgrid zu erstellen, wird das auch funktionieren.
Dies ist ein Teil meines Skripts, das Psychtoolbox
verwendet, also bin ich ein bisschen eingeschränkt in dem, was ich tun kann. Sobald ich checks
erstellt habe, verwende ich es, um eine texture
zu generieren, um auf den Bildschirm zu zeichnen, während es vergrößert wird, um es größer zu machen.
Kann jemand helfen?
Code:
K=checkerboard(9); % using Matlab checkerboard function to create a checkerboard
K=K(1:27,1:27); % using a small part of the checkerboard as I want to have a wide distances between the lines
cmap = [0.48 0.48 0.48; 0.54 0.54 0.54]; % colour map to make the colour grey
bw1 = ind2rgb(uint8(K), cmap);
white = 1;
grey = white/2;
rcycles = 8;
% Now we make our checkerboard pattern
xylim = 1;
[x,y] = meshgrid(-1.25:0.0932:1.25,-1.25:0.0932:1.25);
checks = bw1;
circle = x.^2 + y.^2 <= xylim^2;
checks = circle .* checks + grey * ~circle;
imshow(checks);
Wie ich es sehe, wird es vollkommen glatt nur, wenn Sie buchstäblich jede einzelne reelle Zahl zwischen 'nehmen [-1.25 , 1,25]], was eindeutig nicht möglich wäre. Das Ergebnis mag Ihnen gefallen, wenn Sie etwas wie 'K = Schachbrett (40); K = K (1: 269,1: 269); 'und das Meshgrid-Intervall als' -1,25: 0,00932: 1,25'. Btw es gibt Ihnen das: https://i.stack.imgur.com/uqdhP.jpg es scheint glatt, aber wenn Sie es zoomen, werden Sie das gleiche Problem sehen, weil Sie nicht alle Punkte zwischen '[-1.25 berücksichtigen können , 1.25] ' –