blob: 0051a989c1e58cffe13123a6d3dd02c209134c90 [file] [log] [blame]
function [kappa, ccurv] = curv_centre(C)
d = size(C, 1); % Dimensió de l'ambient
% Arestes
ar01 = C(:, 2:end-1) - C(:, 1:end-2);
ar12 = C(:, 3:end) - C(:, 2:end-1);
% Mètrica
g11 = sum(ar01.*ar01);
g12 = sum(ar01.*ar12);
g22 = sum(ar12.*ar12);
% Centres de curvatura
detG = g11.*g22 - g12.*g12;
lambda1 = (0.5*g11.*g22 - g12.*g12 - 0.5*g12.*g22)./detG;
lambda2 = (0.5*g11.*g12 + 0.5*g11.*g22)./detG;
ccurv = C(:, 1:end-2) + (ones(d, 1)*lambda1).*ar01;
ccurv = ccurv + (ones(d, 1)*lambda2).*ar12;
% Curvatura com a invers del radi
vradi = C(:, 1:end-2) - ccurv;
radi = sqrt(sum(vradi.*vradi));
kappa = 1./radi;