- 2069 Chaitra · 6 marks
Scaling about arbitrary fixed point
Short answer
Translate fixed point to origin, scale, then translate back: M = [sx 0 xf(1-sx); 0 sy yf(1-sy); 0 0 1]. Transformed point: x' = x·sx + xf(1-sx), y' = y·sy + yf(1-sy).
Derive the 2D transformation matrix for scaling with respect to an arbitrary fixed point.
Scaling about the origin moves the object away from or toward the origin. To scale an object about a fixed point (xf, yf) so that this point stays unchanged, the object is moved so that the fixed point is at the origin, scaled, and then moved back.
Steps
- Translate the fixed point to the origin: T(−xf, −yf)
- Scale about the origin: S(sx, sy)
- Translate back: T(xf, yf)
M = T(xf, yf) · S(sx, sy) · T(−xf, −yf)
| 1 0 xf | | sx 0 0 | | 1 0 −xf |
= | 0 1 yf | · | 0 sy 0 | · | 0 1 −yf |
| 0 0 1 | | 0 0 1 | | 0 0 1 |
Multiply the right two matrices:
| sx 0 −sx·xf |
| 0 sy −sy·yf |
| 0 0 1 |
Then the left matrix:
| sx 0 xf(1 − sx) |
M = | 0 sy yf(1 − sy) |
| 0 0 1 |
So x' = x·sx + xf(1 − sx) and y' = y·sy + yf(1 − sy).
Check: for (x, y) = (xf, yf): x' = xf·sx + xf − xf·sx = xf, so the fixed point stays unchanged. Example: scaling by 2 about (4,2) gives x' = 2x − 4, y' = 2y − 2.
✓ Answer checked by Claude Opus 5.5 (high effort)
Related questions
- 3D scaling about arbitrary point · Computer Graphics, chapter 4
- Derive perspective projection matrix · Computer Graphics, chapter 4 · asked 3×
- Rotation about a pivot point · Computer Graphics, chapter 3 · asked 2×
- Derive parallel projection matrix · Computer Graphics, chapter 4 · asked 2×
- Derive oblique projection matrix · Computer Graphics, chapter 4 · asked 3×
- 2D reflection matrices and line y+x=0 · Computer Graphics, chapter 3
- Bar stiffness matrix and 2D truss element · Computational Techniques in Civil Engineering, chapter 4
- 4-point DFT by linear transformation · Signals and Systems, chapter 3
- Three moment equation: derive and apply to fixed beam · Theory of Structures II, chapter 2
- Fixed point: sin x + 3x - 2 · Numerical Method, chapter 2 · asked 2×