' Winkel zwischen drei Punkten TYPE Vektor x AS SINGLE y AS SINGLE z AS SINGLE END TYPE DECLARE FUNCTION ACos! (x!) DECLARE SUB Subtrahiere (a AS Vektor, b AS Vektor, c AS Vektor) DECLARE FUNCTION Skalar! (a AS Vektor, b AS Vektor) DECLARE FUNCTION VektABS! (a AS Vektor) DIM SHARED Pi! DIM a AS Vektor, b AS Vektor, m AS Vektor, va AS Vektor, vb AS Vektor Pi! = 4! * ATN(1!) INPUT "Mittelpunkt"; m.x, m.y, m.z INPUT "Punkt A"; a.x, a.y, a.z INPUT "Punkt B"; b.x, b.y, b.z Subtrahiere a, m, va Subtrahiere b, m, vb cosphi! = Skalar!(va, vb) / (VektABS!(va) * VektABS!(vb)) PRINT "Winkel:"; ACos!(cosphi!) * 180! / Pi!; "ø" FUNCTION ACos! (x!) IF x! = 1! THEN ACos! = 0 ELSEIF x! = -1! THEN ACos! = Pi! ELSE ACos! = Pi! / 2! - ATN(x! / SQR(1! - x! * x!)) END IF END FUNCTION FUNCTION Skalar! (a AS Vektor, b AS Vektor) Skalar! = a.x * b.x + a.y * b.y + a.z * b.z END FUNCTION SUB Subtrahiere (a AS Vektor, b AS Vektor, c AS Vektor) c.x = a.x - b.x c.y = a.y - b.y c.z = a.z - b.z END SUB FUNCTION VektABS! (a AS Vektor) ' Berechung Betrag VektABS! = SQR(a.x * a.x + a.y * a.y + a.z * a.z) END FUNCTION