load (draw)$ A:[1,1,1]$ v1:[1,0,0]$ v2:[0,1,0]$ B: A + v1$ C: B + v2$ D: A + v2$ posrange: 2$ negrange: -1$ koord : [ head_length = 0.2, /* Pfeil-Kopflaenge */ color = black, vector ([negrange, 0, 0], [posrange-negrange, 0, 0]), /* x-Achse */ vector ([0, negrange, 0], [0, posrange-negrange, 0]), /* y-Achse */ vector ([0, 0, negrange], [0, 0, posrange-negrange]), /* z-Achse */ label ( ["x", posrange + 0.2, 0, 0], ["y", 0, posrange + 0.2, 0], ["z", 0, 0, posrange + 0.2 ] ), xaxis = false, xtics = false, yaxis = false, ytics = false, zaxis = false, ztics = false ]$ maxgrad : 70$ /* grad - 360 */ anzahlbilder : 30; d1 : C - A; /* Diagonale */ d2 : D - B; gl : A + r*d1 - (B + s*d2); lsg : solve (gl, [r,s]); rlsg : rhs (lsg[1][1]); DS : A + rlsg*d1; d : C - DS; ld : sqrt( d . d ); for i : 0 while i < anzahlbilder do block ([], w : i * maxgrad * 2*%pi / 360 / anzahlbilder, dneu : [cos(w) * d[1], cos(w) * d[2], ld * sin(w)], Cneu : DS + dneu, bild[i] : gr3d ( line_width = 2, points_joined = true, point_size = 5, points ([A, B, Cneu, D, A]), points ([B, D]), user_preamble = ["set noborder"], koord, xrange = [negrange, posrange], yrange = [negrange, posrange], zrange = [negrange, posrange] ) )$ bilder : [bild[0]]$ for i : 1 while i < anzahlbilder do bilder : append (bilder, [bild[i]])$ draw ( bilder, file_name = "viereck", delay = 20, dimensions = [600,600], terminal = 'animated_gif )$