Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an ellipse where the radius of x-axis = 100 and y-axis = 30. I have 3 objects where I want to evenly distribute it along the ellipse.

I have already done this for a circle where both axis' are the same, ex: radius x-axis=100 and y-axis = 100. I did:

  • evenSpace = 360/3.

Object1 (x,y) = (100 * cos(120*180*1) , 100 * sin(120*180*1).

Object2 same thing but instead of '1', it's 2.

Object3 same thing but instead of '1', it's 3.

This worked out fine for a circle, but with an ellipse I can't get it to work because the x-axis radius is much longer than the y-axis. Any help people? Thanks in advance.

share|cite|improve this question
You will need to use an elliptic integral (of the second kind) for this. – J. M. Jan 5 '12 at 3:21
@J.M. Can you give more detail, how this will work? – draks ... Apr 5 '12 at 10:53
@draks: the arclength of an ellipse requires an elliptic integral of the second kind for representation. I distinctly recall posting something in another question how to obtain the elliptic integral, but I can't find it at the moment. – J. M. Apr 10 '12 at 3:43
It depends on what the OP means by "evenly distributed". The responders are using "equal arc length", but another possibility could be "equal area of sectors from the center". These are the same for a circle, but different for an ellipse. – marty cohen Jul 16 '13 at 5:22

Under the usual parametrization of ellipse $x=a\cos t$, $b=\sin t$, the arclength function comes out in terms of the elliptic integral of second kind as $$ \int_0^t \sqrt{a^2\sin^2 s+b^2\cos^2 s}\,ds = b\int_0^t \sqrt{1-(1-a^2/b^2)\sin^2 s}\,ds $$ which in Sage is b*elliptic_e(t,1-(a/b)^2). I divided this ellipse in three arcs of equal length:

three points

using Sage commands

t0=find_root(elliptic_e(t,1-(a/b)^2) == (1/3)*elliptic_e(2*pi,1-(a/b)^2), 0, 2*pi)
parametric_plot((100*cos(t),30*sin(t)),(t,0,2*pi)) + point([(100*cos(t0),30*sin(t0))],color='black',size=30) + point([(100*cos(-t0),30*sin(-t0))],color='black', size=30) + point([(100,0)],color='black', size=30) 
share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.