How to determine changing scale factors when performing coordinate transfomations?

391 Views Asked by At

To explain: I have two coordinate systems. One $(x,y)$ and the other $(x',y')$ as seen in this diagram. Coordinate systems

I am trying to convert the coordinate in the $(x,y)$ system to the rotated red system $(x',y')$.

I have created two equations that will convert a point in $(x,y)$ to $(x',y')$ using matrices for scaling, rotation and translation.

$\begin{array}{lrrr} x'=& x(s_x)\cos(\theta)&+~y(s_y)\sin(\theta)&+~t_x\\ y'=&-x(s_x)\sin(\theta)&+~y(s_y)\cos(\theta)&+~t_y \end{array}$

where $\theta$ is the angle in radians, $x$ and $y$ are the original coordinates, $x'$ and $y'$ are the new coordinates, $s_x$ and $s_y$ are the scaling factors of each respective $x$ and $y$ point and $t_x$ and $t_y$ are the translation values for each point.

I have several points in the new system $(x',y')$ that can relate to the old system $(x,y)$.

However, my goal is to be able to take a point from the $(x,y)$ system and convert it to the $(x',y')$ system with a set of formulas but unfortunately, I believe that the scaling factors are different for each $(x,y)$ point depending on where it is located. I am trying to find a way to account for these changing scaling factors but I cannot find anything. I believe the translation values would be constant but my main concern is scaling. Note: I did not create this $(x',y')$ system; I have to work with it though.

Any help with this matter would be greatly appreciated!