load (draw)$ winkelvektor(v) := block ([], atan(v[2]/v[1]) / (2*%pi)*360 ); p1 : [1,1]$ a : [12,1]$ c : [5,5]$ d : [4,1]$ alpha : winkelvektor(a); beta : winkelvektor(c); laq : a . a, vector_simp; la : sqrt (laq); ac : a . c, vector_simp; ad : a . d, vector_simp; p2 : p1 + c; p4 : p2 + d; /* Projektionspunkt */ F : p1 + ac/laq * a; F1 : F + ad/laq * a; delta1 : winkelvektor (p1+c - F) + 180; ta : p1 + a + [0.2, -0.2]; text1 : concat ("set label '{/=25 @_{/=25 a}^{/=15 ->}}' at ", ta[1], "," , ta[2]); tc : p1 + c * 0.5 + [-0.5, +0.5]; text2 : concat ("set label '{/=25 @_{/=25 c}^{/=15 ->}}' at ", tc[1], "," , tc[2]); td : p1 + c + d * 0.5 + [-0.5, +0.5]; text3 : concat ("set label '{/=25 @_{/=25 d}^{/=15 ->}}' at ", td[1], "," , td[2]); tt1 : (p1 + (F - p1)/6 + [0, -0.5]), numer; text4 : concat ("set label '{/=25 @_{|} @_{/=25 c}^{/=15 ->} @_{| cos ({/Symbol g})}}' at ", tt1[1], "," , tt1[2], " enhanced"); tt2 : (F + (a - F)/4 + [0, -0.5]), numer; text5 : concat ("set label '{/=25 | @_{/=25 d}^{/=15 ->} | cos ({/Symbol d})}' at ", tt2[1], "," , tt2[2], " enhanced"); tt1a : (p1 + (F - p1)/4 + [0, -1.5]), numer; text6 : concat ("set label '{/=25 @_{/=25 a}^{/=15 ->} @_{*} &{ } @_{/=25 c}^{/=15 ->}}' at ", tt1a[1], "," , tt1a[2], " enhanced"); tt2a : (F + (a - F)/4 + [0, -1.5]), numer; text7 : concat ("set label '{/=25 @_{/=25 a}^{/=15 ->} @_{*} &{ } @_{/=25 d}^{/=15 ->}}' at ", tt2a[1], "," , tt2a[2], " enhanced"); tw : (p1 + [0.6, 0.4]), numer; textw : concat ("set label '{/Symbol=25 g}' at ", tw[1], "," , tw[2], " enhanced"); tb : p1 + (c + d) + [+0.5, +0.5]; text8 : concat ("set label '{/=25 @_{/=25 b}^{/=15 ->}}' at ", tb[1], "," , tb[2]); draw2d ( xtics = false, ytics = false, xaxis = false, yaxis = false, xrange = [0,15], yrange = [-2,8], head_length = 0.2, color = red, line_width = 5, vector (p1, a), vector (p1, c+d), color = black, line_width = 3, vector (p1, c), vector (p1 + c, d), line_width = 5, points_joined = true, point_type = none, line_type = dots, points ([p2, F]), points ([p4, F1]), color = red, user_preamble = [ "set noborder", "set color", text1 , text2, text3, text4, /* text5, */ textw, text6, text7, text8 ], transparent = true, line_type = solid, line_width = 3, color = black, ellipse (p1[1], p1[2], 1.5, 1.5, beta, alpha-beta), point_type = filled_circle, point_size = 1, file_name = "distributivgesetz", dimensions = [800,800], terminal = eps );