load (draw)$ A:[0,0]$ v1:[8,4]$ v2:[2,6]$ B: A + v1$ C: B + v2$ D: A + v2$ S : (C-A)*0.5$ offsetx : 0.8$ offsety : 0.0$ xmax : lmax (map (lambda([x], x[1]), [A, B, C, D])); xmin : lmin (map (lambda([x], x[1]), [A, B, C, D])); ymax : lmax (map (lambda([x], x[2]), [A, B, C, D])); ymin : lmin (map (lambda([x], x[2]), [A, B, C, D])); [xmax, ymax] : map (lambda ([x], if (x < 1) then 1 else x), [xmax, ymax]); [xmin, ymin] : map (lambda ([x], if (x > -1) then -1 else x), [xmin, ymin]); posrange : lmax ([xmax, ymax]); negrange : lmin ([xmin, ymin]); koord : [ head_length = 0.2, /* Pfeil-Kopflaenge */ color = black, vector ([negrange, 0], [posrange-negrange, 0]), /* x-Achse */ vector ([0, negrange], [0, posrange-negrange]), /* y-Achse */ label ( ["x", posrange + 0.5, 0], ["y", 0.5, posrange + 0.5] ), xtics = [negrange, 1, posrange], ytics = [negrange, 1, posrange], xaxis = false, xtics = false, yaxis = false, ytics = false, xrange = [negrange - 1, posrange + 1], yrange = [negrange - 1, posrange + 1] ]$ draw ( file_name = "parallelogramm", dimensions = [600,600], terminal = png, gr2d( points_joined = true, point_size = 0, points ([A, B, C, D, A]), points ([A,C]), points ([B,D]), label (["S", S[1]+offsetx, S[2]+offsety]), label (["A", A[1]+offsetx, A[2]+offsety]), label (["B", B[1]+offsetx, B[2]+offsety]), label (["C", C[1]+offsetx, C[2]+offsety]), label (["D", D[1]+offsetx, D[2]+offsety]), user_preamble = ["set noborder"], koord ) )$