How can I plot a circle use given point?
显示 更早的评论
I want to plot a circle, use given data.
but, I just know the some of the point in circle, but do not midpoint and radius.
Then, How Can I plot the circle using a given point?
回答(2 个)
KSSV
2021-1-25
0 个投票
If you have points.....you can find the radius of circle. It depends on how many points you know.
Frame the distance formula and solve the equations.
If you have lot of points use: https://in.mathworks.com/matlabcentral/fileexchange/22643-circle-fit-pratt-method
weikang zhao
2021-1-25
0 个投票
If you have coordinates of three points, the radius and center of the circle can be obtained by solving a positive definite equation set. If you have more points, there will be a overdetermined set, the midpoint and radius have a least squares estimation.
2 个评论
Seong-Won Ham
2021-1-25
weikang zhao
2021-1-25
give you a demo:
clear
c=[5;5];%real coordinate of midpoint
r=3;%real radius
pointNum=20;%num of all the points
thetatrain=unifrnd(0,2*pi,1,pointNum);
rtrain=r+0.01*randn(1,pointNum);
xytrain=c+[rtrain.*cos(thetatrain);rtrain.*sin(thetatrain)];%Generate a set of points perturbed around the circle
plot(xytrain(1,:),xytrain(2,:),'.');
A=[xytrain.',ones(pointNum,1)];
b=sum(xytrain.^2).';
est=(A.'*A)\A.'*b;
rhat=sqrt(est(1)^2/4+est(2)^2/4+est(3));%LS estimate of radius
xhat=est(1)/2;%LS estimate of the x coordinate of midpoint
yhat=est(2)/2;%LS estimate of the y coordinate of midpoint
hold on;
plot(xhat+rhat*cos(0:pi/180:2*pi),yhat+rhat*sin(0:pi/180:2*pi));
If you are interested in mathematical principles, email me. my email address
类别
在 帮助中心 和 File Exchange 中查找有关 2-D and 3-D Plots 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!