Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Let say I have a polygon. I need to draw another polygon inside this polygon which is scaled-down. See this image,

enter image description here

I need inner Polygon co-ordinates. Given that I have outer polygon co-ordinates and scaled down value.

share|cite|improve this question
up vote 2 down vote accepted
  1. Define the center of the polygon $(\bar{x}, \bar{y})$. This could be the mean, center of gravity, center line, etc.

  2. Subtract the center from each vertex point $x_i = x_i - \bar{x}$, $y_i = y_i - \bar{y}$.

  3. Scale each vertex point $x_i = \alpha x_i$, $y_i =\alpha y_i$.

  4. Shift back the center $x_i = x_i + \bar{x}$, $y_i = y_i + \bar{y}$.

share|cite|improve this answer
Excellent Man.. – user960567 Mar 28 '12 at 10:47

Shift the center of the polygon to the origin, scale it in X and Y directions and push the center of the polygon back where it was.

Here are the matrix multiplications you need to perform:

$$\begin{pmatrix} x_a & y_a & 1\\ x_b & y_b & 1\\ x_c & y_c & 1\\ x_d & y_d & 1\\ \end{pmatrix} \begin{bmatrix} 1 & 0 &0\\ 0 & 1 &0\\ -x_{center} & -y_{center} &1\\ \end{bmatrix} \begin{bmatrix} Scale_x & 0 &0\\ 0 & Scale_y &0\\ 0 & 0 &1\\ \end{bmatrix} \begin{bmatrix} 1 & 0 &0\\ 0 & 1 &0\\ +x_{center} & +y_{center} &1\\ \end{bmatrix} $$ where $x_{blah}$ denotes the x co-ordinate of blah. Y is similar.

share|cite|improve this answer
This is also correct. Thanks – user960567 Mar 28 '12 at 11:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.