Suppose I have a $8 \times 6$ rectangle, with its lower left corner at the origin $\left(0, 0\right)$. I want to scale this rectangle by $\frac{1}{2}$ at an anchor point $\left(3, 3\right)$. So the resulting rectangle is $4 \times 3$, but I cannot figure out how to compute the distance from the origin to the lower left corner of the new rectangle. Help is appreciated.
Scaling at an arbitrary point and figuring out the distance from origin
5
$\begingroup$
geometry
matrices
analytic-geometry
transformation
-
0Oh, I guess you're saying you really wanted a general way to find distances of transformed points. – 2010-10-01
2 Answers
5
Scaling by $0.5$ about the center $(3, 3)$ is the same as translating by $(-3, -3)$, scaling by $0.5$ about $(0, 0)$, then translating by $(3, 3)$. So, to find the coordinates of the lower left corner of the new rectangle, take the coordinates of the lower left corner of the original rectangle, subtract $3$ from each coordinate, multiply each coordinate by $0.5$, and add $3$ to each coordinate. Once you have the point's coordinates, you can find its distance from the origin.
-
2If the scale is c and the anchor is (a,b), then the new point is (cx+(1-c)a,cy+(1-c)b), as easily follows from Isaac's method. – 2010-10-01
1
If you want to scale by .5 with anchor (a,b), then (x,y) will be sent to ((a+x)/2,((b+y)/2), the midpoint of the segment connecting the two points.