How to plot solid concentric circles in a meshgrid?
7 次查看(过去 30 天)
显示 更早的评论
I am trying to plot solid concentric circles in a meshgrid but the code I used only plots the borders of the circles.
theta = linspace(0, 2*pi, 100);
[X, Y] = meshgrid(1:1:4, theta);
a = 0;
b = 0;
plot(a+cos(Y).*X, b+sin(Y).*X);
axis equal
What I intend to do is to generate solid concentric circles and that the points inside the circles are valued as either 1 (white) or 0 (black). Below is a picture for visualization. Can anyone help me?
Thanks,
0 个评论
采纳的回答
Star Strider
2018-3-14
Try this:
theta = linspace(0, 2*pi, 100);
[X, Y] = meshgrid(1:1:4, theta);
a = 0;
b = 0;
figure(2)
plot(a+cos(Y).*X, b+sin(Y).*X);
axis([-1 1 -1 1]*6)
hold on
patch([xlim fliplr(xlim)], [min(ylim)*[1 1] max(ylim)*[1 1]], 'k')
for k1 = 4 : -1 : 1
color = [1 1 1]*(mod(k1,2)==0);
patch(a+cos(Y(:,k1)).*X(:,k1), b+sin(Y(:,k1)).*X(:,k1), color);
end
hold off
axis equal
axis tight
It creates patch objects going from the largest radius to the smallest, changing the colours with each iteration of the for loop. It colours the background black first. If you want a larger background, area, increase the multiplier (here 6) in the axis call.
Experiment to get the result you want.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!