More Mathematics for 3D Modelling

This will be the last session on 3D Modelling, designed to tie up loose ends. It contents will therefore depend on the challenges encountered in the three first sessions.

Learning Outcomes

  • Be able to use homogeneous coordinates to model and manipulate motion in 3D

Briefing and questions

  • 3D Motion (additional notes)
  • Quaternions. Ma (2004) Appendix 2.A.


  1. Review the stage turntable exercise from last week. Use homogeneous co-ordinates to find the global co-ordinates of the actress (item 5). Check that your calculations match with what you did with heterogeneous co-ordinates.
  2. Given a rotational matrix \[ \begin{bmatrix} \cos(\pi/6) & -\sin(\pi/6) & 0 \\ \sin(\pi/6) & \cos(\pi/6) & 0 \\ 0 & 0 & 1 \end{bmatrix} \] and a translation \(\vec{v}=[1,0,2]\).

    What are the homogenous matrices describing each of the following operations:
    • rotate by \(R\) and then translate by \(\vec{v}\)
    • translate by \(\vec{v}\) and then rotate by \(R\)
  3. Review the crane exercise from last week and redo it using homogenous co-ordinates. Check that your calculations match regardless of the method used.
  4. Suppose you have rotated by \(R\) and then translated by \(\vec{v}\) as given in the previous exercise. What is the homogeneous matrix to undo this operation?

Exercises from Ma (2004)

  1. Exercise 2.11. To calculate eigenvalues and -vectors in Python, you can use numpy.linalg.eig.
  2. Exercise 2.7.
  3. Exercise 2.10.
  4. Ma (2004:40) Exercise 2.14. Hint: start by drawing
  5. Ma (2004:40) Exercise 2.13


I showed this sample code in class. It shows one way of dealing with homogeneous co-ordinates together with the plotting tools that we have used.