### 12.7.3 Right triangles in space: right_triangle

See section 11.8.3 for right triangles in the plane.

The right_triangle command returns and draws a right triangle. It takes as arguments one of the following:

- Three points, A, B and P.
  right_triangle(A,B,P) returns and draws the right triangle BAC with the right angle at vertex A. The first two points A and B are vertices of the triangle, the third point P determines the plane and orientation of the triangle. The orientation is so that angle BAP is positive. The length of AC equals the length of AP.
  Input:
  A := point(0,0,0); B := point(3,3,3);
  P := point(0,0,3)
  then:
  right_triangle(A,B,P);
  Output:
- Two points, A and B, and a list consisting of a point P and a real number k.
  triangle_rectangle(A,B,[P,k]) returns and draws the right triangle BAC with the right angle at vertex A. The first two points A and B are vertices of the triangle, the third point P determines the plane and orientation of the triangle as above. The length of AC is |k| times the length of AP. Angle BAC has the same orientation as BAP if k is positive, angle BAC has opposite orientation as BAP if k is negative. So tan(β) = k if β is the angle CAB.
  Input:
  right_triangle(A,B,[P,2])
  Output:
  Input:
  right_triangle(A,B,[P,-2])
  Output:

right_triangle can take an optional fourth argument, which is a variable which will be assigned to the third vertex of the triangle.
Input:

right_triangle(A,B,[P,2],C)

then:

coordinates(C)

Output:

[-3*sqrt(2), -3*sqrt(2), 6*sqrt(2)]