
How can I fill with color a odd flower in a cartesian o polar coordinates?
조회 수: 1 (최근 30일)
이전 댓글 표시
% In rectangular coordinates
theta=linspace(0,2*pi,200);
radius=cos(5*theta);
x=radius.*(cos(theta));
y=radius.*(sin(theta));
fill(x,y,'b') % when matlab run, only fill with color not odd flowers
axis('square')
% In polar coordinates
p=Polar(theta,radius,'-b')
patch(get(ph,'XData'), get(ph,'YData'), 'b')
댓글 수: 1
Image Analyst
2015년 7월 8일
I fixed your formating, and am attaching the screenshot you forgot to include:

채택된 답변
bio lim
2015년 7월 8일
편집: bio lim
2015년 7월 8일
As a matter of fact, you are filling with color. What you are filling are the small polygons as shown in the figure below.

If we look closely, we can see the small polygons that are filled with blue colour.

The fill() and patch() works perfectly when you are dealing with even number of petals. However, even for even petals, if you zoom in closely at the center, you can see that there are regions which are not filled.
I think the problem with your code is that when the radius takes less than 0 value, the polygons occur. So a simple solution would be:
theta=linspace(0,2*pi,200);
radius=cos(5*theta);
radius(radius <= 0) = 0;
x=radius.*(cos(theta));
y=radius.*(sin(theta));
fill(x,y, 'b');
axis('square')
Here is the updated graph.

댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Polar Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!