### 12.8.2 Rhombuses in space: rhombus

See section 11.9.2 for rhombuses in the plane.

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

- Three points, A, B and P.
  The first two points A and B are vertices of the triangle, the third point P determines the plane and orientation of the rhombus. The orientation is so that angle BAP is positive. The command returns and draws rhombus ABCD, where D is on the ray AP (and the length of AD equals the length of AB).
  Input:
  A := point(0,0,0); B := point(3,3,3);
  P := point(0,0,3)
  then:
  rhombus(A,B,P)
  Output:
- Two points, A and B, and a list consisting of a point P and a real number a.
  The points A and B are vertices of the rhombus and P determines the plane and orientation of the rhombus as above. The command returns and draws rhombus ABCD, where angle BAD equals a.
  Input:
  rhombus(A,B,[P,pi/3])
  Output:

rhombus can take optional fourth and fifth arguments, which are variable names assigned to vertices C and D.
Input:

rhombus(A,B,[P,pi/3],C,D)

then:

simplify(coordinates(C)); simplify(coordinates(D))

Output:

[(-3*sqrt(6)+18)/4,(-3*sqrt(6)+18)/4,(3*sqrt(6)+9)/2],
[(-3*sqrt(6)+6)/4,(-3*sqrt(6)+6)/4,(3*sqrt(6)+3)/2]