# How to make objects follow a ellipse? (Duplication around ellipse)

I am trying to make a Quidditch scene from Harry Potter.

So I am trying to make outer diagonal trees.

I used Array modifier Object offset, target to empty at center

I can make "Circle" but I can not make "Ellipse".

I tried to change Location, Rotation and Scale of Empty and Wood Object.

Thank you.

(Blender 2.90 Windows 10)

When using follow path with fixed position one end is offset factor 0.0 the other 1.0 or for a cycle this is same. Half way is 0.5 etc.

Make a tower at origin, give it a follow path constraint, using the ellipse, with fixed position and no offset factor.

And oops, make sure that scale is applied on your ellipse AltS Scale ie it has unit scale and select follow curve on constraint to have the towers aligned to ellipse.

Now duplicate the mesh and move it around the ellipse using the offset factor...... being a scripter that's too much hard work, so have written a little script to do just this. Or via UI with Shift or Alt D for duplicate linked (same mesh) or unlinked respectively. And set the offset factor for each.

Little script, select tower, run script to make other distributed copies.

import bpy
from bpy import context

copies = 16

for i in range(1, copies): # copies - 1
tower = context.object.copy()
# comment following to have linked copies (same mesh)
tower.data = tower.data.copy() # an unlinked dupe (own mesh)
tower.constraints[0].offset_factor = i / copies


A bonus here is can easily move the goal posts, in case they are not all to be equally spaced around the ellipse by adjusting the offset_factor to have them remain on the path. Picture in OP almost looks like it may 18 spots with the two pointy end towers removed. No doubt all details are well covered on the 'net. (Kudos too to J.K. Rowlings for her support of the IRC chat servers)

• Oh my God, I don't know how to say but at first let me thank you so much ; ; And I'm sorry for the late reply. I didn't have notifications set up. The person who answered me before was talking about you. So I asked Google, but the search didn't turn up anything. But now that you've actually answered, I feel like I've been saved by a hero.
– Hana
Apr 15, 2021 at 7:50
• I'm new to scripting and I feel like I'm working magic. In order to become a great mage like you, I'm going to learn scripting as well as CG. I know this may be a bit presumptuous of me, but I would love for you to see this quidditch scene when it is finished. Thank you very much for your help. From a little muggle
– Hana
Apr 15, 2021 at 7:51
• sorry I did not know about to accept the answer. Thank you so much!
– Hana
May 20, 2021 at 14:02

Create a plane, create a curve, scale the curve in Edit mode to make an ellipse, give the plane an Array and a Curve modifier with the curve as Curve Object:

Create your tower object, parent it to the plane. Select the plane, in the Properties panel > Object > Instancing, press on Faces, your tower will duplicate around the ellipse shape:

To make each instance independent, select the towers and press CtrlA > Make Instances Real. If you want them to not share the same mesh, go into the header menu > Object > Relations > Make Single User > Object & Data.

• but you could also do this with python - batFinger would need 2 mins for this ;) Apr 14, 2021 at 9:48
• wait for the Robin Betts's full procedural solution!!! Apr 14, 2021 at 9:49
• ok, i will wait!!! So Robin, why do you need so long? Apr 14, 2021 at 9:50
• Probably he's not as strong as we thought :// Apr 14, 2021 at 10:37
• This is a bit disappointing...so I always looked up to my heroes: Iron man, Supergirl, Wonderwoman, Spider-Man, Fantastic four, batFingers, Robin Betts, Moonboots...but looks like I have to reduce my list. :D Apr 14, 2021 at 10:54

Nowadays, if Geometry Nodes is an acceptable route, Resample Curve or Curve to Points makes a pretty robust job of evenly dividing a standard Bezier ellipse .. (an Edit-Mode scaled circle) :

• -1 ...you forgot the Snitch... 🤪 Apr 29 at 17:25
• @quellenform working on it... too busy atm hunting down spam accounts :D Apr 29 at 17:31