% calculate line from two statistically independent points L = sugr_construct_join_line_3D(X,Y) X,Y given 3D points as sugr objects L joining 3D line as sugr object Wolfgang Förstner 2013-09-17 wfoerstn@uni-bonn.de wf 2016-09-02 added variance propagation sw 9/2016 See also sugr_Line_3D, sugr_minimal_3D_Line, sugr_constrain_3D_Line
0001 %% calculate line from two statistically independent points 0002 % 0003 % L = sugr_construct_join_line_3D(X,Y) 0004 % 0005 % X,Y given 3D points as sugr objects 0006 % 0007 % L joining 3D line as sugr object 0008 % 0009 % Wolfgang Förstner 2013-09-17 0010 % wfoerstn@uni-bonn.de 0011 % 0012 % wf 2016-09-02 added variance propagation 0013 % sw 9/2016 0014 % 0015 % See also sugr_Line_3D, sugr_minimal_3D_Line, sugr_constrain_3D_Line 0016 0017 function L = sugr_construct_join_Line_3D(X,Y) 0018 0019 %% determine homogeneous vectors 0020 0021 % Jacobians dL/dX, dL/dY 0022 J_LX = sugr_calc_Pi(X.h); 0023 J_LY = - sugr_calc_Pi(Y.h); 0024 0025 h = J_LX*Y.h; 0026 0027 %% determine covariance matrix 0028 % CovM of homogeneous 4-vectors 0029 CovM_X = sugr_get_CovM_homogeneous_Vector(X); 0030 CovM_Y = sugr_get_CovM_homogeneous_Vector(Y); 0031 0032 % covariance matrix of Plücker vector 0033 CovM_Lh = J_LX * CovM_X * J_LX' + J_LY * CovM_Y * J_LY'; 0034 0035 % generate sugr object 0036 L = sugr_Line_3D(h,CovM_Lh);