22-Mec-B4 Integrated Manufacturing Systems · December 2017
Question 2 of 7: Two-dimensional geometric transformations
Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
Paper format. 16-Mec-B4 Integrated Manufacturing Systems,
December 2017 — a three-hour open-book examination; any non-communicating
calculator is permitted. The cover page states “Any five (5) questions constitute a complete
paper. Only the first five (5) questions as they appear in your answer book will be marked”
and “All questions are of equal value”, so each of the seven printed
questions carries 20 marks against a 100-mark paper. Note 1 invites the candidate to submit a clear
statement of any assumptions made where a question is open to interpretation; this paper needs that
licence twice, and both places are flagged below. All seven questions are worked here, because this
set is a study resource rather than a timed sitting.
Reference texts. E. S. Buffa and R. K. Sarin, Modern Production /
Operations Management, 8th ed. (requirements-schedule lot sizing, economic order interval,
part-period balancing, plant location, machine coupling and the man-machine chart);
R. B. Chase, F. R. Jacobs and N. J. Aquilano, Operations and Supply Chain Management,
16th ed. (aggregate planning strategies, categories of forecasting technique, weighted factor
rating for facility location); M. P. Groover, Automation, Production Systems, and
Computer-Integrated Manufacturing, 5th ed. (CAD geometric transformations, computer-aided
process planning, routing sheets, group technology); D. C. Montgomery, Introduction to
Statistical Quality Control, 8th ed. (Shewhart constants, process capability indices);
A. J. Duncan, Quality Control and Industrial Statistics, 5th ed. (natural tolerance versus
specification); C. E. Ebeling, An Introduction to Reliability and Maintainability
Engineering, 3rd ed. (when preventive maintenance pays).
Given. Part (a): a straight line segment with end points
$P_1 = (0,\;0)$ and $P_2 = (2,\;3)$. Part (b): a segment with end points
$Q_1 = (1,\;1)$ and $Q_2 = (1,\;3)$, to be carried to $Q_1' = (0,\;1)$ and
$Q_2' = (0,\;5)$.
Find. The matrix representation of each line, the image of the part-(a) line
under each of the four transformations, and a sequence of elementary transformations (with their
matrices) that produces the part-(b) movement.
Approach. Write both end points as homogeneous column vectors so that scaling,
rotation and translation are all $3\times 3$ matrix multiplications, apply each elementary matrix
to the point matrix, and for part (b) build the required mapping as
translate → scale → translate-back, then collapse the three into one
concatenated matrix.
Part (a) — write the line in homogeneous matrix notation.
A translation is not a linear map on $(x,\,y)$, so plane geometry in CAD is carried out in
homogeneous coordinates: the point $(x,\,y)$ becomes the column $[x\;\;y\;\;1]^{T}$ and every
transformation becomes a single $3\times 3$ matrix. Storing the two end points as the columns of
one matrix lets both be transformed at once:
$$\mathbf{P}=\begin{bmatrix} 0 & 2 \\ 0 & 3 \\ 1 & 1 \end{bmatrix}
\qquad\text{(column 1 is } P_1\text{, column 2 is } P_2\text{)}$$
The image of the line under a transformation matrix $\mathbf{T}$ is then simply
$\mathbf{P}' = \mathbf{T}\,\mathbf{P}$, and the transformed end points are read off as the columns
of $\mathbf{P}'$.
(i) Scale uniformly by 2.0. A scaling about the origin multiplies each
coordinate by its scale factor, so with $s_x = s_y = 2.0$
$$\mathbf{S}(2,2)=\begin{bmatrix} 2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix},
\qquad
\mathbf{S}\,\mathbf{P}=\begin{bmatrix} 0 & 4 \\ 0 & 6 \\ 1 & 1 \end{bmatrix}$$
The end points move to $\boxed{(0,\,0)\ \text{and}\ (4,\,6)}$. The origin is the fixed point of
the transformation, so $P_1$ does not move; the line keeps its direction and doubles in length,
from $\sqrt{13}=3.606$ to $\sqrt{52}=7.211$ units.
(ii) Scale 3.0 in x and 2.0 in y. Differential scaling uses the same matrix
with unequal diagonal entries:
$$\mathbf{S}(3,2)=\begin{bmatrix} 3 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix},
\qquad
\mathbf{S}\,\mathbf{P}=\begin{bmatrix} 0 & 6 \\ 0 & 6 \\ 1 & 1 \end{bmatrix}$$
giving $\boxed{(0,\,0)\ \text{and}\ (6,\,6)}$. Unlike (i) this is not a similarity
transformation: the slope changes from $3/2$ to $1$, so the line now lies at 45°. Differential
scaling distorts angles, which is why a CAD system applies it to a whole model only with care.
(iii) Rotate 45° about the origin. A counter-clockwise rotation through
$\theta$ has the matrix
$$\mathbf{R}(\theta)=\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\
\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix},
\qquad \cos 45^{\circ}=\sin 45^{\circ}=0.7071$$
Applying it to the second column, $x' = 2(0.7071) - 3(0.7071) = -0.7071$ and
$y' = 2(0.7071) + 3(0.7071) = 3.5355$, so the image is
$$\boxed{(0,\,0)\ \text{and}\ (-0.707,\;3.536)}$$
As a check, rotation is an orthogonal transformation and must preserve length:
$\sqrt{0.7071^{2}+3.5355^{2}} = 3.606 = \sqrt{13}$, which matches the original length exactly. The
end point has swung from the first quadrant into the second, as it must, since the original line
lies at $\arctan(3/2) = 56.31^{\circ}$ and $56.31 + 45 = 101.31^{\circ}$.
(iv) Translate 2.0 units in x and 2.0 units in y. Translation is the reason
for the homogeneous third row: the shift appears in the third column,
$$\mathbf{T}(2,2)=\begin{bmatrix} 1 & 0 & 2 \\ 0 & 1 & 2 \\ 0 & 0 & 1 \end{bmatrix},
\qquad
\mathbf{T}\,\mathbf{P}=\begin{bmatrix} 2 & 4 \\ 2 & 5 \\ 1 & 1 \end{bmatrix}$$
so the end points become $\boxed{(2,\,2)\ \text{and}\ (4,\,5)}$. Both length and direction are
unchanged — the whole segment simply shifts along the vector $(2,\,2)$.
Part (a): the original segment (0,0)–(2,3) and its image under each of the four transformations. Uniform scaling and translation preserve the 56.3° direction; differential scaling rotates it to 45°; the rotation preserves the length √13 = 3.606.
Part (b)(i) — diagnose what the required movement actually does.
The starting segment runs from $(1,1)$ to $(1,3)$: it is vertical, two units long, at $x = 1$. The
target runs from $(0,1)$ to $(0,5)$: still vertical, but four units long and at $x = 0$. So the
movement is a doubling of length in the y-direction with the lower end point held fixed at
$y = 1$, combined with a one-unit shift to the left. A scaling matrix always works about the
origin, so the y-scaling cannot be applied directly — it would move the point $(1,1)$ to
$(1,2)$. The standard device is to translate the fixed point onto the origin, scale there, then
translate back.
Part (b)(i) — state the sequence. Three elementary transformations, in
this order:
Step 1. Translate the line by $-1$ in y, carrying the lower end point
$(1,1)$ onto the x-axis at $(1,0)$.
Step 2. Scale by a factor of $2$ in the y-direction (and $1$ in x) about
the origin, which stretches the segment from two units to four while the lower end stays on the
axis.
Step 3. Translate by $-1$ in x and $+1$ in y, which restores the lower end
point to $y = 1$ and simultaneously moves the line onto the axis $x = 0$.
The x-shift is folded into the final translation rather than given a step of its own, because
the x-scale factor is unity and translations commute in x.
Part (b)(ii) — write the three matrices. In the order applied,
$$\mathbf{T}_1=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1 \end{bmatrix},
\qquad
\mathbf{S}=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix},
\qquad
\mathbf{T}_2=\begin{bmatrix} 1 & 0 & -1 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix}$$
where $\mathbf{T}_1$ translates by $(0,-1)$, $\mathbf{S}$ scales by $(1,2)$ about the origin, and
$\mathbf{T}_2$ translates by $(-1,+1)$.
Concatenate and verify. Because the transformations are applied to the point
on the right, they concatenate right-to-left:
$$\mathbf{M}=\mathbf{T}_2\,\mathbf{S}\,\mathbf{T}_1
=\begin{bmatrix} 1 & 0 & -1 \\ 0 & 2 & -1 \\ 0 & 0 & 1 \end{bmatrix}$$
Applying $\mathbf{M}$ to the two end points,
$$\mathbf{M}\begin{bmatrix} 1 & 1 \\ 1 & 3 \\ 1 & 1 \end{bmatrix}
=\begin{bmatrix} 0 & 0 \\ 1 & 5 \\ 1 & 1 \end{bmatrix}
\;\Longrightarrow\;
\boxed{(0,\,1)\ \text{and}\ (0,\,5)}$$
which is the required result. Concatenating first and transforming once is what a real graphics
pipeline does: one matrix multiply per vertex instead of three.
Part (b): the segment is translated down so its lower end lies on the x-axis, scaled by two in y, then translated back and one unit to the left. The dashed line is the intermediate state after scaling about y = 1.