I would like to draw a segment of a circle (like a slice of a pizza) but cannot find an easy way to do it.
I am currently drawing triangles using fill function but ideally I need one side of the triangle to be curved. Is there a way to specify a curvature of a line? Thanks B

 Réponse acceptée

the cyclist
the cyclist le 27 Avr 2011

2 votes

There are several files in the File Exchange that will do what you want. Here is one:
Also, here is a simple function that could be modified to draw just a segment:
function h = circle(x,y,r,nsegments)
if nargin<4
nsegments=50;
end
hold on
th = 0:2*pi/nsegments:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
h = plot(xunit, yunit);
hold off
end

1 commentaire

poonam tailor
poonam tailor le 31 Jan 2015
Sir i need sector's center point. As i need a mid region of a circles sector for cluster head selection.

Connectez-vous pour commenter.

Plus de réponses (1)

Matt Fig
Matt Fig le 27 Avr 2011

6 votes

Here is another function to do it. It returns the handle to the patch object so that the color can be set or whatever.
function P = plot_arc(a,b,h,k,r)
% Plot a circular arc as a pie wedge.
% a is start of arc in radians,
% b is end of arc in radians,
% (h,k) is the center of the circle.
% r is the radius.
% Try this: plot_arc(pi/4,3*pi/4,9,-4,3)
% Author: Matt Fig
t = linspace(a,b);
x = r*cos(t) + h;
y = r*sin(t) + k;
x = [x h x(1)];
y = [y k y(1)];
P = fill(x,y,'r');
axis([h-r-1 h+r+1 k-r-1 k+r+1])
axis square;
if ~nargout
clear P
end
Now from the command line:
P = plot_arc(pi/4,3*pi/3,9,-4,3);
set(P,'edgecolor','b','linewidth',4)

7 commentaires

Bojan
Bojan le 27 Avr 2011
Thank you very much
Bojan
Bojan le 27 Avr 2011
Another question, how can you add colour to the face of the pie wedge?
Matt Fig
Matt Fig le 27 Avr 2011
Simply use FILL instead of PLOT.
Matt Fig
Matt Fig le 27 Avr 2011
See my edited code above...
Bojan
Bojan le 27 Avr 2011
Perfect, exactly what I need
B
Ron Beck
Ron Beck le 26 Fév 2018
Is it possible to have a curve at the bottom instead of a point?
zain ul haq
zain ul haq le 23 Déc 2019
Sir, can I plot the segmet with height too, I need to plot like a 3d slice of a cake

Connectez-vous pour commenter.

Catégories

En savoir plus sur Polar Plots dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by