Fit circle through 3 points
Mathematical background is provided in http://www.regentsprep.org/regents/math/geometry/gcg6/RCir.htm
Input:
ABC is a [3 x 2n] array. Each two columns represent a set of three points which lie a circle. Example: [-1 2;2 5;1 1] represents the set of points (-1,2), (2,5) and (1,1) in Cartesian (x,y) coordinates.
Outputs:
R is a [1 x n] array of circle radii corresponding to each set of three points.
xcyc is an [2 x n] array of of the centers of the circles, where each column is [xc_i;yc_i] where i corresponds to the {A,B,C} set of points in the block [3 x 2i-1:2i] of ABC
Usage example: I want to compute the centers and radius for:
* A circle passing through points (-1,0), (0,1) and (1,0)
* A circle passing through points (-1 0), (0,0) and (0,1)
The code to do this is the following:
>> ABC=[[-1 0;0 1;1 0] [-1 0;0 0;0 1]]
ABC =
-1 0 -1 0
0 1 0 0
1 0 0 1
>> [R,xcyc] = fit_circle_through_3_points(ABC)
R =
1.0000 0.7071
xcyc =
0 -0.5000
0 0.5000
NOTE: the function is fully fault-tolerant, in other words it always outputs a result "that makes the most sense". See the heavily commented function code for details on how the fault-tolerance is achieved.
引用格式
Danylo Malyuta (2024). Fit circle through 3 points (https://www.mathworks.com/matlabcentral/fileexchange/57668-fit-circle-through-3-points), MATLAB Central File Exchange. 检索来源 .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- MATLAB > Mathematics > Elementary Math >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!版本 | 已发布 | 发行说明 | |
---|---|---|---|
1.0.0.0 | Changed title Updated screenshot and file comments.
|