Revision 54911be35993d9d31d1345a22ad09c656b773eb9 (click the page title to view the current version)

3D Modelling

Changes from 54911be35993d9d31d1345a22ad09c656b773eb9 to current

---
title: 3D Mathematics
categories: session
geometry: margin=2cm
fontsize: 12pt
---

**Reading** Ma (2004) Chapter 2 + Appendix A
+ [Previous: [Introduction]()]-[Up: [Overview]()]-[Next: [3D Objects in Python]()]

# Reading
 
+ Ma (2004) Chapter 2 until Section 2.3 inclusive
+ Ma (2004) Appendix A if necessary to understand Chapter 2.  
+ (Szeliski 2022 Chapter 2 until Section 2.1.3 inclusive)
    - Szeliski is a lot briefer, for better or for worse

# Briefing

1.  **Recap** [Change of Basis]()
1.  **New** [Representations of 3D Motion]()
1.  (More on [3D Motion]())
1.  [Change of Basis]()

# Exercises

Note.
Exercises in parentheses are optional.
Please skip these unless you have a lot of time.
**Everybody** nneds to understand and be able to do the first to problems
(turntable and crane).  Take time to make sure that you can see the
link between the real world geometry and the mathematical methods.

All exercises are from Ma 2004 page 38ff
The remaining problems are purely abstract. It is ok if you do not have 
time to do them, but mastering them will make it easier to take advantage
of mathematical models later in the module. 

1. Exercise 2.1 a+d.  (See Definition A.12 page 446.)
1. Exercise 2.3.  (See Definition A.13 page 447.)
1. Exercise 2.6.  
1. Exercise 2.7.  
1. Exercise 2.10.  
1. Exercise 2.11.
   To calculate eigenvalues and -vectors in Python, you can
   use `numpy.linalg.eig`.
## A stage turntable

If this is too much for one session, we will continue with next
week.
Let's try a little 2D exercise before we move to 3D.
Consider a theatre stage with a turntable.

# Debrief
The global co-ordinate system is defined with the origin
at a seat in the middle of the audience.
The $y$-axis points directly towards the stage, and the $x$-axis
is perpendicular, pointing towards the right hand side.

Continue on [3D Mathematics]()
The turntable has its centre at $(0,10)$ in the global co-ordinate system.
The centre of the turntable is also the origin of its local co-ordinate
system.
An actor stands on the turntable at the point $(0,1)$ in the local
co-ordinate system.

# Solution drafts
1. Draw and annotate the situation.
2. Suppose first that the turntable is turned so that its local $y$-axis
  is aligned with the global one.  Where is the actor located in the globale
  co-ordinate system
3. Suppose the turntable turns clockwise by an angle $\alpha$.
   Write down the corresponding rotation matrix.
4. What becomes the new position of the actor in the global co-ordinate system?
5. An actress was positioned at some local co-ordinates $(x,y)$.
   What is her global position before and after the rotation by $\alpha$.
6. Note that you can calculate the positions of the two actors either directly
   by simple geometric observations and by means of linear algebra and a change
   of basis.  You should try both and compare the results for validation.

## Exercise 2.1
## A crane

**Definition** of a linear function
![Crane illustration](crane2.png)

$$f(C\cdot X) = C\cdot f(X)$$
Imagine a crane or robot arm with two booms as shown in the figure. 
We want to calculate the position of the hand of the arm (i.e. point $A$),
given the position of the two joints.

$$f(X+Y) = f(X) + f(Y)$$
+ The first boom
    - has its base in the global origin.
    - can rotate around the $z$-axis (the vertical axis).
    - has length $a$ and extends along the $z$-axis.
+ The second boom
    - has its base at the tip of the first boom.
    - has length $b$.
    - is jointed so that it can rotate around the $y$-axis.
      Note that this is the $y$-axis in the local co-ordinate
      system of the first boom, which may rotate in the global co-ordinate system.
+ Write $\alpha$ for the angle of rotation around the base.
  Assume that the boom is in the $xz$-plane when $\alpha=0$. 
+ Write $\beta$ for the angle in the joint.
  Suppose the second boom extends vertically when $\beta=0$.

If we take a function $f(X) = X\cdot A\cdot X$ we can test if this is true, e.g.
Note that each joint and boom can be described in a local co-ordinate system
induced by the preceeding joints and booms in the system.

$$f(X+Y) = (X+Y)A(X+Y) = (XA+YA)(X+Y) = XAX + XAY + YAX + YAY = f(X) + XAY + YAX + f(Y)$$
### Step 1.  Some concrete numbers

In this case we get two terms which we should not have had if the function were linear, and they are not zero in the general case.  Hence this function is not linear.  Similar calculations can be made for the function in the exercise.
Suppose $a=1$, $b=2$, and $\alpha=0$.  Let $\beta=\pi/4$ so that the
second boom is horisontal.  Draw this situation and calculate the
global co-ordinates of the hand ($A$).

### General solution

Now we will work with general algebraic values, $a$, $b$, $\alpha$, and $\beta$.
To calculate the position of $A$, we should start with the hand in a local 
co-ordinate system and work backwards towards the base.

### Step 2.  The co-ordinate system of the joint

Point $A$ is the origin in the co-ordinate system of the hand.

1.  Calculate its position of $A$ in the co-ordinate system of the joint.

Note that this comprises a translation along the boom, and a rotation 
by $\alpha$.
You need to specify these two transformations and the order in which 
to apply them, to arrive at the transformation between the two
co-ordinate systems.

Note that each change of co-ordinate system comprises a rotation and a
translation.  If you prefer, you may consider four distinct co-ordinate
systems (instead of two) such that each change of basis makes either 
a rotation *or* a translation.

### Step 3.  The co-ordinate system of the base

1.  Calculate its position of $A$ in the co-ordinate system of the base.

To find $A$ in the global (base) co-ordinate system, we need to
find the transformation between the joint basis and the base basis,
and combine this with the transformation from base 2.

## Properties of the rotation matrix.

This is based on Exercise 2.6 from Ma (2003:38).  

Consider two transformation matrices:

$$
R_1=
\begin{bmatrix}
  \cos \theta & -\sin\theta \\
  \sin\theta & \cos \theta 
\end{bmatrix}
\quad
R_2=
\begin{bmatrix}
  \sin \theta & \cos\theta \\
  \cos\theta & -\sin \theta 
\end{bmatrix}
$$

+ For each matrix, what is the determinant?
+ For each matrix, is it orthogonal?

Consider two points $\vec{a}=(1,1)$ and $\vec{b}=(0,1)$.
Apply each transformation to both points, and draw the six 
points $\vec{a},\vec{b},\vec{a}R_1,\vec{b}R_1,\vec{a}R_2,\vec{b}R_2$
in the same co-ordinate system.

+ Are they both rigid-body transformations (rotation)?
+ If they are not rotations, what are they then?

## Exercises from Ma (2003)

If you have time to spare, when you have done the exercises above,
I recommend the following ones from Ma 2004 page 38ff.

1. Exercise 2.1 a+d.  (See Definition A.12 page 446.)
1. Exercise 2.3.  (See Definition A.13 page 447.)

## More mathematical links

Consider the two vectors $\vec{x}=[x_1,x_2,x_3]$ and
$\vec{y}=[y_1,y_2,y_3]$, and an orthonormal basis
$\vec{e}_1, \vec{e}_2, \vec{e}_3$.

1.  Write the inner product $[x_1,x_2,x_3]\cdot[y_1,y_2,y_3]$.
2.  Write the vectors as linear polynomials
    $\vec{x}=x_1\vec{e}_1+ x_2\vec{e}_2+ x_3\vec{e}_3$ and
    $\vec{y}=y_1\vec{e}_1+ y_2\vec{e}_2+ y_3\vec{e}_3$,
    and calculate the product $\vec{x}\cdot\vec{y}$, using
    + polynomial multiplication
    + and the rules for the product $\vec{e}_i\cdot\vec{e}_j$
      for orthonormal bases.
3.  Are the two definitions of multiplication equivalent or different?

# Debrief


+ [Solutions/stageturntable.pdf]()
+ [Solutions/crane.pdf]()