How to get sub-circles from orignal circle

Hi,
I have circle with diameter 1, I use below code:
meshgrid(x,y)
Fig,surf(x,y,z,'facecolor','interp','edgecolor',none);view(2)
xlim([0 1]),ylim([0 1))
colorbar;colormap(hot);
Now I want plot a circle
figure2. Keep original circle diameter 0-0.39 from bottom as it is, and fill rest of the original area with black color
Figure3: Keep original circle diameter 0.39~1 (up or top) as it is, and fill rest of the original area with black color
Figure4: Keep original circle diameter 0~63 from left as it is, and fill rest of the original area with black color
Figure5: Keep original circel diameter 0.4~1 to right as it is,and fill rest of the original area with black color
Kindly some help to do this.

4 Comments

Adam Danz
Adam Danz on 22 Mar 2019
Edited: Adam Danz on 23 Mar 2019
Please format your code (highlight code and press alt+enter). Also, if it's possible to supply example values for x and y or at least provide a screen shot of the initial figure, that would be helpful. Otherwise we're giving advice based on estimates produced in our imagination.
Mekela, are you still there? Where'd you go?
You still have posted no screenshots (figures 2 through 5) (by using the green "insert image" icon) -- so you still have no answers .... Is this your homework?
Have you seen the circle entry in the FAQ: Click Here for the FAQ
Why are you using surf()? What are x, y, and z? Why are you calling meshgrid()? And even if you did call meshgrid(), why are you not accepting/storing any output it generates?
If you're talking about colors in certain radius ranges (i.e. a thick ring) then why aren't you using images, (like with the imshow() function) to show the colors, instead of using the surf() function to make a 2.5-D topographic-style visualization?
The color in the ring/range is black but what is the color outside the range?
Keep the original color in the specified diameter range, and fill the outside this range as black,
N = 256;
c = colormap(jet(N));
th = linspace(0, 2*pi, N);
r = 0:0.5:1;
[TH,R] = meshgrid(th,r);
[X,Y] = pol2cart(TH,R);
C = bsxfun(@times,(X + Y),th);
figure(1)
circled.jpg
surf(X,Y,C)
view([0 90])
axis square
grid off
I want keep the circle as it is as above in 0.39~0.6 diameter range, and fill rest of the area in black color

Sign in to comment.

 Accepted Answer

See this color wheel example. Adapt as needed.
Capture.PNG

More Answers (0)

Products

Release

R2016a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!