% Foot point from Point_2D x onto line l x = sugr_construct_footpoint_xl_Point_2D(x,l) Wolfgang Förstner 1/2011 wfoerstn@uni-bonn.de sw 9/2016 See also sugr_Point_2D, sugr_get_isfinite_Point_2D, sugr_Line_2D, sugr_construct_mean_Point_2D, sugr_construct_midpoint_Point_2D, sugr_construct_intersection_Point_2D,sugr_construct_footpoint_Ol_Point_2D,
0001 %% Foot point from Point_2D x onto line l 0002 % 0003 % x = sugr_construct_footpoint_xl_Point_2D(x,l) 0004 % 0005 % Wolfgang Förstner 1/2011 0006 % wfoerstn@uni-bonn.de 0007 % 0008 % sw 9/2016 0009 % 0010 % See also sugr_Point_2D, sugr_get_isfinite_Point_2D, sugr_Line_2D, 0011 % sugr_construct_mean_Point_2D, sugr_construct_midpoint_Point_2D, 0012 % sugr_construct_intersection_Point_2D,sugr_construct_footpoint_Ol_Point_2D, 0013 0014 function Point_2D = sugr_construct_footpoint_xl_Point_2D(x,l) 0015 0016 G3 = diag([1,1,0]); 0017 Sl = calc_S(l.h); 0018 Sx = calc_S(x.h); 0019 A1 = Sl * Sx * G3; 0020 h = A1 * l.h; 0021 A = A1 + calc_S(Sx * G3 * l.h)'; 0022 B = -Sl * calc_S(G3 * l.h); 0023 Clhh = sugr_get_CovM_homogeneous_Vector(l); 0024 Cxhh = sugr_get_CovM_homogeneous_Vector(x); 0025 Chh = A * Clhh * A' + B * Cxhh * B'; 0026 0027 %generate reduced parameters 0028 Point_2D = sugr_minimal_vector(h,Chh);