load (draw); load (vector_rebuild); listarith : true; doallmxops : true; s : [2,0,0]; F : [0.8,0.5,2.5]; nullp : [0,0,0]; /* r n*C / |n| */ /* r ist die Länge der Projektion von F auf s */ r : lsum(i,i,maplist("*",s,F)) / |s|; /* L ist der Lotpunkt des Lotes von F auf s */ L : s*r/|s|; str1 : strim("\"", string("set label '{/=25 @_{/=25 s}^{/=15 ->}}' at ")); label1 : concat (str1, s[1]+0.2, ",", s[2], ",", s[3]); /**/ str2 : strim("\"", string("set label '{/=25 @_{/=25 F}^{/=15 ->}}' at ")); label2 : concat (str2, F[1]-0.2, ",", F[2], ",", F[3]+0.3); /**/ str3 : strim("\"", string("set label '{/=25 L}' at ")); label3 : concat (str3, L[1], ",", L[2], ",", L[3]-0.2); /**/ str4 : strim("\"", string("set label '{/=25 O}' at ")); label4 : concat (str4, nullp[1]-0.2, ",", nullp[2], ",", nullp[3]); draw3d ( line_width = 2, /* xrange = [-0.5, 5], yrange = [-0.5, 5], zrange = [-0.5, 5], */ points_joined = true, point_size = 1, point_type = none, transparent = false, head_length = 0.1, color = red, vector (nullp, s), color = blue, vector (nullp, F), color = black, line_type = dashes, points ([F, L]), /* */ xtics = false, ytics = false, ztics = false, user_preamble = [ "set noborder", label1, label2, label3, label4 ], /* view = [91, 60], */ dimensions = [1200, 1200], file_name = "arbeit", /* terminal = eps_color */ terminal = png );