# Re: SVG Tiny 1.2 CR2006-08-10: path data

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Mon, 6 Nov 2006 19:59:18 +0200

Message-Id: <200611061859.18625.Dr.O.Hoffmann@gmx.de>
```
Hello,

>Its good idea to convert the quadratic curve to cubic curve. Great !
>What about the calculation of the arc length of the quadratic and cubic
>curves.

>Nand

I think, what you mean are the commands T and S (or s and t) -
the expansion to Q and C is already mentioned in the specification.
It has to be done by the viewer.
This is straight forward. If you now it for Q -> C the problem is
solved, because the paths are already normalised from small to large
letters, T -> Q -> C and S -> C, therefore it is only the question,
why not L -> C...

The pathLength of the curve is implictely known to the viewer,
the viewer has to calculate it for some applications anyway.
There is the attribute pathLength for the author to correct
the result of the viewer. The result is available in the DOM too,
of course only with scripting, not in the declarative/XML part.
I you want to do it as an author, there are a simple formulars to
calculate the pathLength:
http://en.wikipedia.org/wiki/Arc_length
Note, that the pathLength always exists for Beziers in SVG, not
for any curve in general (think about fractal curves with a fractal
dimension larger than 1).

In most cases this has to be done numerically, as far as I can
see in general for cubic and quadratic beziers too.
But I did not look very carefully in the books, if there are some
general antiderivatives for theses types of integrals to give
an analytical solution for a quadratic or cubic bezier, for a
linear it is easy. For elliptical arcs (not part of SVG Tiny 1.2) it
is well known, that you have to do it numerically.
```
Received on Monday, 6 November 2006 18:07:07 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 March 2017 09:47:09 UTC