Posted on 2004-10-05
Hi, hope someone can help with this little geometry problem
I have an ellipse (centered at the origin for simplicity) that I want to scale non-uniformly (along one axis only).
If the stretching is performed along one of the ellipses' own axes the operation is trivial. The length of eiher the major or minor axis will change, while the other axis and the angle will remain the same.
Suppose however I choose to scale/stretch along an axis which is not the major nor the minor axis of the ellipse, say for example an axis that runs at 45 degrees through the origin. The resulting transformation of my ellipse will be a combination of rotation and scaling which leaves the ellipse axes rotated to an angle between the original 0 degrees and the scaling direction of 45. I want to know how this transformation works, i.e. how to derive the new parameters of the ellipse from the old parameters (x,y, a, b, theta) and the scaling direction and magnitude.
An example: start with an ellipse having semimajor axis along x-axis 2units, semiminor axis along the y-axis, 1 unit. Centered on the origin.
Scale by a factor 2 along a line running at 45deg through the origin. (this is tried with a nurbs-cad program so the ellipse is only an approximation of the mathematical ellipse, but the result looks like the result I want).
The resulting ellipse has the following properties (still centered at the origin)
Semimajor axis about 3.3 units long, at an angle of 25.6 degrees from the x-axis.
Semiminor axis is roughly 1.2 units.
Thanks for any pointers