Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Spline Question

16 views
Skip to first unread message

Tim Howell

unread,
Feb 27, 1997, 3:00:00 AM2/27/97
to

Hi everyone. I am new to this group, so, please forgive me and point me
in the right direction if this is the wrong place to ask this:

In a few weeks, I will be starting work on a 3D roller coaster simulator
for PowerMac's(this all depends on whether or not I get a PowerMac when
I am planning to. ;-) )

Anyways, I will be using Apple's fairly new piece of software, QD3D.
For those who don't know, QD3D is a 3D engine with a number of
innovative features. Do a search under WebCrawler to find a page that
can give you more information.

Back to my question. I want to have my track be spline based, but I
can't seem to find any spline algorithms anywhere. I want a spline that
*will* go through any specifed points, so I don't think a b-spline will
work. I was wondering if anyone could give me any 3D spline algorithms.
I would prefer if the algorithms were in plain math, and not in a
programming language, however I am not real picky. ;-) . Also, if you
folks wouldn't mind, I would appreciate it if you could explain what
each part of the algorithm does. Thanks again, Tim Howell

Kyle Lussier

unread,
Feb 28, 1997, 3:00:00 AM2/28/97
to

On Thu, 27 Feb 1997 20:39:48 +0000, howe...@mail.apc.net (Tim Howell)
wrote:

Hi Tom,

POWER-3D (out in March) has excellent n-dimensional source code (C++
object's "LSpline" and "LSmoothMover") that work great in any
application. The code is tried and tested, and very quick and being
used in our Particle modeling package.

Kyle..

y+
==================================================================*=======
Kyle Lussier NSF Engineering Research Center SMV Thrust Member |
http://inside.net/silicon_softworks Home Office: (352) 377-2244 |
x+ +--*
- Author of "POWER-3D: High-Speed 3D Graphics in Windows 95/NT" \
- Grab Silly Space 2, "Virtual Silly Putty" Above (Totally Free!) \
=====================================================================*===
z+

Michael Meeks

unread,
Mar 1, 1997, 3:00:00 AM3/1/97
to

In article <1997022720...@ppp-207-113-176-186-anaheim.apc.net>,

Tim Howell <howe...@mail.apc.net> wrote:
>work. I was wondering if anyone could give me any 3D spline algorithms.
>I would prefer if the algorithms were in plain math, and not in a
>programming language, however I am not real picky. ;-) . Also, if you
>folks wouldn't mind, I would appreciate it if you could explain what
>each part of the algorithm does. Thanks again, Tim Howell

IMHO Code is often far easier to read and understand (
particularly if well commented ), than the equivalent maths. I found this
especialy so with splines. Multiple nested sums / integrals are all very
well but why use something so complicated to describe something that is
only 20 lines of code ?

Does anyone else think this way, or have I got it all wrong (
again ) :-)

Good luck,

Michael Meeks.
--
me...@hermes.cam.ac.uk <><, Pseudo Engineer, itinerant idiot ...

John Kichury

unread,
Mar 2, 1997, 3:00:00 AM3/2/97
to

Some like code, others like math... There are many books that
cover both; Mathematical Elements for Computer Graphics
(Rogers et. al.), Curves and Surfaces for Computer Aided Geometric
Design (Gerald Farin), and lots of stuff in the Graphics Gems series
from Academic Press.

- John

--
________________________________________________________________________
John Kichury (joh...@sgi.com) - Silicon Graphics, Inc.

Jeff Erickson

unread,
Mar 2, 1997, 3:00:00 AM3/2/97
to

John Kichury wrote:
> Some like code, others like math...

There's a difference?
:-)
--
Jeff Erickson Center for Geometric Computing
je...@cs.duke.edu Duke University
http://www.cs.duke.edu/~jeffe

Jonathan Sachs

unread,
Mar 4, 1997, 3:00:00 AM3/4/97
to

On Thu, 27 Feb 1997 20:39:48 +0000, howe...@mail.apc.net (Tim Howell)
wrote:

>Hi everyone. I am new to this group, so, please forgive me and point me
>in the right direction if this is the wrong place to ask this:
>
>In a few weeks, I will be starting work on a 3D roller coaster simulator
>for PowerMac's(this all depends on whether or not I get a PowerMac when
>I am planning to. ;-) )
>
>Anyways, I will be using Apple's fairly new piece of software, QD3D.
>For those who don't know, QD3D is a 3D engine with a number of
>innovative features. Do a search under WebCrawler to find a page that
>can give you more information.
>
>Back to my question. I want to have my track be spline based, but I
>can't seem to find any spline algorithms anywhere. I want a spline that
>*will* go through any specifed points, so I don't think a b-spline will

>work. I was wondering if anyone could give me any 3D spline algorithms.
>I would prefer if the algorithms were in plain math, and not in a
>programming language, however I am not real picky. ;-) . Also, if you
>folks wouldn't mind, I would appreciate it if you could explain what
>each part of the algorithm does. Thanks again, Tim Howell

The ultimate spline reference which includes both math and code
(FORTRAN unfortunately) is:

One Dimensional Spline Interpolation Algorithms
Helmuth Spath
A.K. Peters 1995
ISBN 1-56881-016-4

It lists many different kinds of splines including the interpolating
splines you are asking about that go through a fixed set of control
points. Most of the spline algorithms you read about are like Bezier
curves and do not pass through their control points.

Jonathan Sachs
Digital Light & Color


Chris Lomont

unread,
Mar 5, 1997, 3:00:00 AM3/5/97
to


On 1 Mar 1997, Michael Meeks wrote:

> IMHO Code is often far easier to read and understand (
> particularly if well commented ), than the equivalent maths. I found this
> especialy so with splines. Multiple nested sums / integrals are all very
> well but why use something so complicated to describe something that is
> only 20 lines of code ?
>
> Does anyone else think this way, or have I got it all wrong (
> again ) :-)

Some formulas are very concise and readable, but the code is very
complicated. I think it would depend entirely on the specific example.
For example, write code to find solutions of partial differential
equations, which is a mess, even many of them would have nice
mathematical forms. That's Mathematica runs several million lines of code
for about 2500 math functions.

:)

Chris Lomont

Richard Matthias

unread,
Mar 11, 1997, 3:00:00 AM3/11/97
to

Jonathan Sachs (jsa...@tiac.net) wrote:
: >Back to my question. I want to have my track be spline based, but I

: >can't seem to find any spline algorithms anywhere. I want a spline that
: >*will* go through any specifed points, so I don't think a b-spline will
: >work.

: It lists many different kinds of splines including the interpolating


: splines you are asking about that go through a fixed set of control

: points. Most of the spline algorithms you read about are like Bezier


: curves and do not pass through their control points.

From the description of what you want to use these curves for, you probably
don't need a spline curve at all. A "Piecewise Bezier" curve would be quicker
to calculate and *would* pass through your control points by virtue of the
fact that you are fixing the end points of the bezier at your control points
and synthesizing the control points of the bezier's to give a smoothe curve.
Sorry I can't give you a reference for the math though.

R.

Angus Dorbie

unread,
Mar 11, 1997, 3:00:00 AM3/11/97
to

It Richard Matthias wrote:
>

> ................ A "Piecewise Bezier" curve would be quicker


> to calculate and *would* pass through your control points by virtue of the
> fact that you are fixing the end points of the bezier at your control points
> and synthesizing the control points of the bezier's to give a smoothe curve.
> Sorry I can't give you a reference for the math though.
>

It depends on how you use the control points. A Bezier is defined by four
points, two of which are the end points and the other two which it does not
pass through so if one wanted to describe a continuous path with Bezier
interpolation an easy and popular way is to generate Bezier endpoints in
the middle of path segments and the other two at the apex or a defined distance
from it. The Bezier is tangential to the end vectors at the end points (what
it was designed for) so this method would produce a smooth spline which
missed all points on the described path except at the very ends of the path.

You don't have to do things this way ofcourse, but any Bezier defined by a
number of points other than four would require some sort of work, and any
continuous smooth path generated as a Bezier would pass through 1 in every
three points, it you call that your control point then fine.

Cheers,Angus.

0 new messages