# Visio Ellipse Part 3

Decoupling the ellipse from the shape

So, it is easy to create a circle shape and move it around the page, but what is needed to create a circle and move it within a shape? The problem is that the Ellipse row created has cells based on the Height and Width of the containing shape.

The first thing to do is decouple the Ellipse row from depending on the Height and Width of the shape and base it on the radius of the circle and the X and Y position of the circle.

For simplicity, I left the X and Y position dependent on a Control Handle. So the Geometry section has reference back to the control handle and Cells A, B, C & D reference back to X and Y. So, here is the shape

Note from the image and the X position of the Ellipse, that the circle is outside the shapes bounding box.

You can easily incorporate this shapesheet row into other shapes where you want a moveable circle or you can position the circle and only have to worry about setting the X and Y positions.

Let’s Get Eccentric

So far, I have only talked about circles. This is just a special case for an ellipse. So how do you add a little eccentricity? Since the Ellipse row has been freed from its’ dependence on Height and Width and simplified. It is easy to see that to add eccentricity you have to replace the radius with a radius appropriate for the major and minor axes in cells A and D.

Nota Bene:

The formula for User.Eccentricity is wrong by a factor of two. It should be based on the sum of the major and minor radii. For a Circle the radii should be equal so User.Eccentricity should be 1. In effect, the Eccentricity made the ellipse smaller, but it still shows the effect.

I hope you find this useful.

John… Visio MVP in x-aisle
JohnVisioMVP.ca