Google Answers Logo
View Question
 
Q: Calculating arc lengh on ellipse, calculating start and end points worked exampl ( Answered,   3 Comments )
Question  
Subject: Calculating arc lengh on ellipse, calculating start and end points worked exampl
Category: Science > Math
Asked by: craigangus-ga
List Price: $30.00
Posted: 08 Oct 2004 16:39 PDT
Expires: 07 Nov 2004 15:39 PST
Question ID: 412271
I need to work out the length of an arc on an ellipse. I know the
formula but its been so long since i have done integration taht I cant
remember how to do it and I need it done quick! 

what I am looking for is a worked example with actual numbers in it.
say for an ellipse of 36 wide and 25 high

I need to the following worked out.
-Length of arc on ellipse
-How to work out the coordinates start and end point of teh arc on
ellipse from given co ordinate

This is for a program that writes text along the circumference of an oval

Request for Question Clarification by leapinglizard-ga on 08 Oct 2004 16:58 PDT
I understand that you want to know the length of an arc on an ellipse,
as well as the coordinates of its endpoints.

What I can't quite tell from your description is how you specify the
arc. Do you give a pair of angles, for instance, between which the arc
lies?

leapinglizard

Clarification of Question by craigangus-ga on 09 Oct 2004 06:00 PDT
OK little more detail, what I have so far is text drawing in a circle.
I do this by measuring the the circumference and then calculate the
arc distance of 1 degree

Carcd = circumference / 360f;

then I get the sweep angle of the length of text from

sweepAngle = textLength / Carcd;

I work out my start point and then draw each letter, work out the
arclength of a letter and so on till i have drawn the text.

The problem is that for an ellipse, Carcd is not consistant.

I need to work out the correct Carcd for length of text and how to get
the arclength for each letter so that the start postion would be so
that teh text is symetrical about the y axis
Answer  
Subject: Re: Calculating arc lengh on ellipse, calculating start and end points worked ex
Answered By: mathtalk-ga on 12 Oct 2004 05:34 PDT
 
Hi, craigangus-ga:

The application described (formatting a text string around the
perimeter of an "oval") raises some interesting issues that go beyond
that of finding the length of an elliptical arc.  In a circle
orienting the characters perpendicular to the circumference is
equivalent to aligning them parallel with a radial line.  Because an
ellipse is essentially a stretched circle, this perpendicularity is
not generally valid in the case of an ellipse (ie. placing the
characters perpendicular to the perimeter of the ellipse is not simply
a matter of drawing them aligned to a line from perimeter to the
center of the ellipse).

However if the height of characters is fairly small in relation to the
distance to the center of the ellipse, then the tilting of the
characters necessary to align them to the perimeter will not have a
big effect on the length of the display string.  The letters will of
course be "crowded" somewhat at the ends closer to the center than at
the ends furthest from the center.

We will be focused in this answer on your original problem of finding
the length of an elliptical arc and on the inverse problem of finding
an elliptical arc of a given length.

A general theory of arc length is outlined in the Comment posted
below.  We illustrate first the computation of length for an
elliptical arc using the example you suggested, of an ellipse
(centered at the origin, for simplicity) whose width is 36 units and
whose height is 25 units.

The equation of such an ellipse in "standard position" would then be:

    x    y
   --- + --- = 1
    A    B

with A = 18 and B = 12.5 (because A,B represent the half-lengths of
the axes of the ellipse).

Using the parameterization (t is in radians, but t is not a "central
angle" as explained in the Comment):

   x = A cos(t), y = B sin(t)

we will begin with computing the length of the entire ellipse, or
rather (because of symmetry) with computing the quarter of its length
that lies in the second quadrant, ie. where t ranges from pi/2 to pi.

Thus we have for this length an integral (explained below):

  INTEGRAL sqrt( (A sin(t)) + (B cos(t)) ) dt OVER [pi/2,pi]

The midpoint rule approximates this integral by the length of the
interval times the value of the integrand at the midpoint of the
interval:

  (pi - pi/2) * sqrt( (A sin(3pi/4)) + (B cos(3pi/4)) )

I set up rows in an Excel spreadsheet, using varying values of t
running down the first column and computing the lengths and midpoint
values (and their products) across the corresponding rows.  For the
single midpoint above, I get:

  1.570796 * 15.49597 = 24.34101

when rounded to the places shown.

To assess the accuracy of this value, I then computed using a
"composite" midpoint rule for three equal subintervals in the same
range.  That is, the interval [pi/2,pi] was broken into:

  [pi/2,2pi/3], [2pi/3,5pi/6], and [5pi/6,pi]

and the midpoint rule applied to each subinterval separately.  The
values for the three subintervals are then summed to get a total for
the overall range:

  9.259898 + 8.113669 + 6.776249 = 24.14982

The "refined" approximation to the integral (and thus to the length of
the elliptical arc) has changed only slightly.  Since the computer is
doing most of the work, with a bit of cut-and-paste on my part,
refining the subintervals once again by thirds produced the sum
24.14978 (using nine subintervals).

So the length of one quarter of the ellipse is pretty clearly
converged, at least as far as a computer graphic pixelization would
require.

Let's turn now to finding a pair of endpoints, symmetric with respect
to the y-axis, which give an arc of some prescribed length.  In the
Comment I suggested that we might want a string/arc of length 19.8 and
that by symmetry we would put half to the left and half to the right
of the y-axis.

Thus we would want to find T between pi/2 (the positive y-axis) and pi
such that the arclength over [pi/2,T] is 9.9.  As a starting point let
me give the approximate lengths for the nine subintervals from the
final tabulation above:

  [pi/2,5pi/9]       3.135409
  [5pi/9,11pi/18]    3.086633
  [11pi/18,2pi/3]    2.992814
  [2pi/3,13pi/18]    2.861552
  [13pi/18,7pi/9]    2.704556
  [7pi/9,5pi/6]      2.537868
  [5pi/6,8pi/9]      2.381663
  [8pi/9,17pi/18]    2.258750
  [17pi/18,pi]       2.190539

If we add up the "lengths" from the first three of these intervals, we
get 9.214855, which is a bit less than the 9.9 we want.  Therefore
some but not all of the "fourth" interval will have to be included. 
We have narrowed down T to between 2pi/3 and 13pi/18.

Splitting the interval [2pi/3,13pi/18] itself into three subintervals gives:

  [2pi/3,37pi/54]     0.969610
  [37pi/54,19pi/27]   0.953850
  [19pi/27,13pi/18]   0.937126

Because we only want to increment the arc's length by:

  9.9 - 9.214855 = 0.685145

the first of the three new subintervals is more than enough.  An
adequate approximation can now be obtained by taking T to be
proportional within that interval to the fraction 0.685145/0.969610 of
its length which we require.

  T = (2pi/3) + (pi/54)*(0.685145/0.969610)

which yields roughly T = 2.1355.

If more than about two decimal places of accuracy were required, we
could of course carry out a more refined computation.

Please let me know if some part of this discussion needs Clarification.

regards, mathtalk-ga
Comments  
Subject: Re: Calculating arc lengh on ellipse, calculating start and end points worked ex
From: mathtalk-ga on 10 Oct 2004 22:38 PDT
 
The length of an elliptical arc is surprisingly hard to compute, at
least in comparison to that of a circular arc.

To avoid "singularities" introduced by points of a curve where x or y
may fail to define a function, e.g. for the circle x + y = r, it's
often simplest to parameterize the curve.

Suppose x = x(t) and y = y(t) for some range of values t.  Calculus
gives us the general formula for arclength:

  s(t) = INTEGRAL Sqrt( x'(t) + y'(t) ) dt

[For the sake of brevity we will write definite integrals using an
indefinite integral notation, with the convention that the constant of
integration is determined so that the integral is zero "at" t = 0.]

The circle has a "uniform" parameterization:

  x(t) = r cos(t)
  y(t) = r sin(t)

where s(t) = rt and t may be considered as a central angle sweeping
from the positive x-axis counterclockwise around the circle.

The ellipse has a similar parameterization in that:

  x(t) = A cos(t)
  y(t) = B sin(t)

periodically generate all points on the ellipse centered at the origin:

    x    y
   --- + --- = 1
    A    B

as t ranges from 0 to 2pi.  Note however that t cannot be identified
with the corresponding central angles, and s(t) is no longer a simple
constant times t.

It is nonetheless possible to evaluate the resulting integral for arclength:

  s(t) = INTEGRAL Sqrt( (A sin(t)) + (B cos(t)) ) dt

in a variety of ways:

1) Analytically

Although no "simple" expression for this integral can be given in
terms of composition of elementary transcendental functions and usual
arithmetic operations, it is given readily in terms of the incomplete
elliptic integral of the second kind, implemented in Mathematica as
EllipticE[t,m]:

[Elliptic integral of the second kind - MathWorld]
http://mathworld.wolfram.com/EllipticIntegraloftheSecondKind.html

2) Interpolation

In a broad sense approximating the values through a tabulation or
using a pre-computed formula whose error is known to be small.

3) Numerical integration

The formula above is very smooth, so any good quadrature scheme succeeds.

4) Arithmetic-geometric mean

An algorithm discovered by Gauss for computing values of
hypergeometric functions, to which elliptic integrals are easily
related.

For the sake of a concrete example, let's suppose the ellipse is like
the one suggested by craigangus-ga.  To be 36 units wide means the
semi-major axis is:

  A = 18

and to be 25 units wide means the semi-minor axis is:

  B = 12.5

Perhaps the piece of text to be printed along (say) the upper rim of
the ellipse symmetrically about the y-axis is to have a length of 19.8
units.  Clearly the ellipse is wide enough (in this case) to allow
printing such a string, so we will not dwell (unless asked!) on
detecting when a string is so long that it begins to "wrap around".

The positive y-axis is where t = pi/2 on the parameterized ellipse. 
So we are asked to find t > pi/2 such that:

  s(t) - s(pi - t) = 19.8

or by symmetry:

  s(t) - s(pi/2)  =  9.9

This sort of problem is easily handled by the numerical integration
approach, as is suggested by this thread:

[Elliptical Arc Length - Ask Dr. Math]
http://mathforum.org/library/drmath/view/51945.html

Perhaps the simplest decent quadrature rule for such integrals is the
mid-point rule:

[Numerical integration]
http://www.damtp.cam.ac.uk/user/fdl/people/sd/lectures/nummeth98/integration.htm

It will suffice in any case for our illustration here, though a
"quality" canned routine might estimate the error of the midpoint rule
using a more accurate Simpson's rule approximation as a comparison.

An Excel spreadsheet can be used to provide such an illustration. 
I'll go off and set that up, then come back and (unless there are
objections) post the results as an Answer.

regards, mathtalk-ga
Subject: Re: Calculating arc lengh on ellipse, calculating start and end points worked exampl
From: craigangus-ga on 12 Oct 2004 00:39 PDT
 
An excel spreadsheet illustration would be excellent.

I dont think the results have to be too accurate. An approximation
would be best if it can be calcutlated easier.
Subject: Re: Calculating arc lengh on ellipse, calculating start and end points worked exampl
From: craigangus-ga on 14 Oct 2004 04:15 PDT
 
Answer looks good, but I'll need a bit of time to review, if I need
any clarification I will get back to you. Thanks

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy