How to plot circle by one single equation?
291 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ameer Hamza
el 13 de Mayo de 2018
Comentada: krishan Gopal
el 9 de Dic. de 2021
I need code which plot the circle in one single equation (variable). I have the code but i need code of single equation, the code which i have, it is composed of two equations as follow :
r=2;
x=0;
y=0;
th = 0:pi/6:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
plot(xunit, yunit);
0 comentarios
Respuesta aceptada
John D'Errico
el 13 de Mayo de 2018
Editada: John D'Errico
el 13 de Mayo de 2018
As one "equation" what does that mean? About the best I can offer is this:
r=2;
x0=0;
y0=0;
ezplot(@(x,y) (x-x0).^2 + (y-y0).^2 -r^2)
axis equal
Be careful that the units are equal for the two axes, else it ill not look circular.
I could also have done it using fimplicit.
r=2;
x0=0;
y0=0;
syms x y
fimplicit((x-x0).^2 + (y-y0).^2 -r^2)
axis equal
So, in either case, only one equation.
If you really insist on only one "variable, then you need to use a polar coordinate transformation. Thus, you can do it in terms of polar angle theta, as:
r=2;
x0=0;
y0=0;
theta = linspace(0,2*pi,100);
plot(x0 + r*cos(theta),y0 + r*sin(theta),'-')
axis equal
So only one variable, theta. If you are hoping for something else, something more or less, then you need to explain carefully what the goal is here.
Are you looking for a simple way to plot a circle? Perhaps try this:
cplot = @(r,x0,y0) plot(x0 + r*cos(linspace(0,2*pi)),y0 + r*sin(linspace(0,2*pi)),'-')
Now you have a little function that will plot a circle.
cplot(2,0,0)
hold on
cplot(3,1,2)
cplot(1,-1,1)
axis equal
2 comentarios
Más respuestas (3)
Aditya Gupta
el 26 de Jun. de 2020
Adding to the MVP's (perfect) answer, I found one more way:
radius = 2;
originX = 0;
originY = 0;
rectangle('Position',[originX-radius originY-radius 2*radius 2*radius], ...
'Curvature',[1 1]);
axis equal
0 comentarios
Harshith pothuri
el 14 de En. de 2021
r=2;
x0=0;
y0=0;
theta = linspace(0,2*pi,100);
plot(x0 + r*cos(theta),y0 + r*sin(theta),'-')
axis equal
0 comentarios
krishan Gopal
el 9 de Dic. de 2021
Hi, can you tell me how to draw line pattern inside the circle
0 comentarios
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!