MATLAB Answers

4

How do I plot a circle with a given radius and center?

MathWorks Support Team さんによって質問されました 2010 年 7 月 26 日
最新アクティビティ Supoj Choachaicharoenkul さんによって 回答されました 2019 年 10 月 2 日
I would like to plot a circle with a given radius and center.

4 件の回答

Answer by MathWorks Support Team on 3 Jan 2019
 Accepted Answer

Here is a MATLAB function that plots a circle with radius 'r' and locates the center at the coordinates 'x' and 'y':
function h = circle(x,y,r)
hold on
th = 0:pi/50:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
h = plot(xunit, yunit);
hold off
An alternative method is to use the 'rectangle' function:
function h = circle2(x,y,r)
d = r*2;
px = x-r;
py = y-r;
h = rectangle('Position',[px py d d],'Curvature',[1,1]);
daspect([1,1,1])
If you are using version R2012a or later and have Image Processing Toolbox, then you can use the 'viscircles' function to draw circles:
viscircles(centers,radii)

  7 件のコメント

Thanks and we want answer to plot circle when they have given us centre and a point on the circle
If you would like to plot a circle given two points [Center, Point on circle], rather than [Center, Radius], you can simply calculate the distance between your two points, and then use that distance as the radius.

サインイン to comment.


Answer by serwan Bamerni on 17 Feb 2016

  2 件のコメント

This is part of the Image Processing Toolbox
I've applied circular hough tranform for identifing the circlular objects in an image and i got the results . But when i used the code into an app designer, insted of ploting the circles into the image where the centers are marked its ploting the circle in a different figure. How can i get both circles and center points into the same axes ( named "app.segmented" )
code.JPG
error
code1.JPG
How to add the axes name to viscircles function in an app designer. I tired
viscircles(centres,radii,'color','b','parent','app.segemented'); which is giving the following error.
code2.JPG

サインイン to comment.


Answer by amine bouabid on 23 Jul 2018
Edited by amine bouabid on 23 Jul 2018

hello
you can plot a circle simply by writing :
syms x; syms y;
ezplot((x-xi).^2+(y-yi).^2-r.^2)
where xi and yi are the coordinates of the center and r is the radius

  0 件のコメント

サインイン to comment.



plot(x, y, 'bo', 'MarkerSize', 50);

  0 件のコメント

サインイン to comment.



Translated by