How do i detect/describe a curvature from a data-set of coordinates
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Conrade Muyambo
am 23 Mai 2019
Bearbeitet: Conrade Muyambo
am 24 Mai 2019
I have a data-set of coordinates that makes up a 2d body. It's a rectangular shape with one side curved or kinda circular. I would like to describe this curved side with a polyfit line so that I can be able to get the radius. How can I achieve this? Thank you for your very much!
1 Kommentar
KALYAN ACHARJYA
am 23 Mai 2019
Bearbeitet: KALYAN ACHARJYA
am 23 Mai 2019
Mathematical language is far better communication way to clear your doubt.
Akzeptierte Antwort
Star Strider
am 23 Mai 2019
The polyfit function will not give you the centre and radius of your arc.
This will:
t = linspace(-pi/4, pi/4, 10); % Create Data
r = 2.5; % Create Data
x = r*cos(t)+1; % Create Data
y = r*sin(t)+2; % Create Data
fcn = @(b) norm(((x(:)-b(1)).^2 + (y(:)-b(2)).^2) - b(3).^2); % Objective Function
B = fminsearch(fcn, rand(3,1)); % Estimate Parameters
Cx = B(1) % Center X-Coordinate
Cy = B(2) % Center Y-Coordinate
R = B(3) % Radius
% B = fsolve(fcn, rand(3,1))
figure
plot(x, y, 'pg')
hold on
plot(Cx, Cy, 'pb')
plot([Cx x(1)], [Cy y(1)], '-r')
hold off
grid
legend('Data', 'Centre', 'Radius')
axis equal
Experiment with it to get the result you want.
10 Kommentare
Star Strider
am 24 Mai 2019
As always, my pleasure.
No.
The arc parameters describe the arcs only.
I have no idea how to describe the sides, since that is not what you requested initially.
See my oiriginal Answer (the ‘Create Data’ assignments) to understand how to describe the arcs.
Weitere Antworten (2)
Conrade Muyambo
am 24 Mai 2019
1 Kommentar
Star Strider
am 24 Mai 2019
As always, my pleasure!
You can likely adapt my code to estimate the sides that are not part of the arcs, although since they are more linear that nonlinear, a linear or ‘slightly nonlinear’ regression could work.
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!