load (draw); load (vector_rebuild); listarith : true; bildanfang : 10; bildende : 10; n1 : [1,2,2]; n2 : [-1,-1,2]; nv : [0,0,0]; /* Schnittgerade g */ A : [1,1,1]; v : n1 ~ n2 / | n1 ~ n2 |; g : A + t*v; g1 : g, t=-8, vector_simp; g2 : g, t=8, vector_simp; rv1 : v ~ n1 / | n1 ~ v |; rv2 : n2 ~ v / | n2 ~ v |; P1 : A + 4 * rv1, vector_simp; P2 : A + 4 * rv2, vector_simp; eq : extract_equations (P1 + a1 * n1 = P2 + a2 * n2); lsg : solve (eq, [a1, a2]); b1 : rhs (lsg[1][1] ), numer; b2 : rhs (lsg[1][2] ), numer; n11 : b1 * n1, vector_simp, numer; n21 : b2 * n2, vector_simp, numer; /* Rechtecke */ r11 : P1 - 4*rv1 - 2*v, vector_simp, numer; r12 : P1 - 4*rv1 + 2*v, vector_simp, numer; r13 : P1 + 4*rv1 - 2*v, vector_simp, numer; r14 : P1 + 4*rv1 + 2*v, vector_simp, numer; r21 : P2 - 4*rv2 - 2*v, vector_simp, numer; r22 : P2 - 4*rv2 + 2*v, vector_simp, numer; r23 : P2 + 4*rv2 - 2*v, vector_simp, numer; r24 : P2 + 4*rv2 + 2*v, vector_simp, numer; Sn : P1 + n11; draw3d ( /* xrange = [bildanfang, bildende], yrange = [bildanfang, bildende], zrange = [bildanfang, bildende], */ xtics = false, ytics = false, ztics = false, points_joined = true, head_length = 0.2, vector (P1, n11), vector (P2, n21), mesh ([r11, r12], [r13, r14]), mesh ([r21, r22], [r23, r24]), /* points ([g1, g2]), */ line_width = 2, color = red, points ([A, P1, Sn, P2, A]), view = [52, 44], dimensions = [600,600], file_name = "eewinkel", terminal = png );