Google Answers Logo
View Question
 
Q: 4D Curve Fit with curve passing through data points ( No Answer,   8 Comments )
Question  
Subject: 4D Curve Fit with curve passing through data points
Category: Science > Math
Asked by: williamdonelson-ga
List Price: $50.00
Posted: 14 Oct 2005 10:38 PDT
Expires: 13 Nov 2005 09:38 PST
Question ID: 580276
I have to move an object around a cylindrical 3D space (angle, height,
distance from vertical axis). Each point (a, h, d) will also have a
speed, to allow an object to be moved along the curve (through the
data points) with the speed given at each point.

So, I will have a set of 5 - 25 given data points (a, h, d, s).

I will need a set of parametric equations for T = 0 .0 to 1.0 ---
Fa(t), Fh(t) and Fd(t) --- which give me the point in space of the
object for any value of T between 0 and 1. The parametrics will need
to incorporate the speed of the object at each given data point.

A high speed would show the function values (resulting points along
the 3D curve) being farther apart, and a low speed would show the
points closer together.

Thanks

Clarification of Question by williamdonelson-ga on 14 Oct 2005 10:41 PDT
Note: The object should move "believably" and "optimally" between the
given data points, so the animation looks realistic. Typically, the
data points will not be perverse.
Answer  
There is no answer at this time.

Comments  
Subject: Re: 4D Curve Fit with curve passing through data points
From: jon_b-ga on 19 Oct 2005 01:21 PDT
 
This isn't really a 4-d curve fit, since velocity is not independant
of the other 3 parameters... it is the time derivative of position
along the curve.

In fact, since you're not trying to plot out a surface, but really
just a curve, you could really do 3 1-D polynomial fits (choose an
order that looks good based on the perverseness of your data, or
choose periodic functions if you want periodic motion, etc)

So, you could do a polynomial fit to your 25 points in (a,h,d) versus
the index parameter k.  You should also do a 1-D fit for speed vs k.

so in summary, you did a 3 1-D polynomial fits to get a=fa(k),
h=fh(k), and d = fd(k).
now.. if you only knew k = fk(t), you could plot out your points vs time!

since you've specified speed s at each k as well, you should do a 1-D
polynomial fit to get s(k) = fs(k).

Well, we know that speed is just the absolute value of the position
derivative vs time.  |Dp/Dt| (where p is the vector (a,h,d).

You could write this as s = |Dp/Dk|*Dk/Dt using the chain rule. 
If we can find Dk/Dt, we can integrate (using k=1 when t=0 as initial
conditon, assuming you started numbering your k's with 1) to find k =
fk(t).

Note you need to do vector derivative on p.
Dp/Dk = (Dd/Dk)*d' + (Dh/Dk)*h' + d*(Da/Dk)*a'
where d', h', and a' are unit vectors 

Then, compute the magnitude of Dp/Dk by taking the sqrt of the dot product.. or
|Dp/Dk| = sqrt( (Dd/Dk)^2 + (Dh/Dk)^2 + d^2*(Da/Dk)^2 )

then solve for Dk/Dt = s(k) / |Dp/Dk|

You solved Dk/Dt, and now you can numerically integrate (or its easy
to exactly integrate polynomials) to get k = fk(t).

Then just plug and plot.
Subject: Re: 4D Curve Fit with curve passing through data points
From: williamdonelson-ga on 19 Oct 2005 02:13 PDT
 
Jon

Thanks, yes, that's the problem. The fk(t) would need to be derived
from the speed component "s" of (a, h, d, s) at each data point. Then
"t" could be linear.

So, can you do the code in MM Dir Lingo for me?

Thanks
William
Subject: Re: 4D Curve Fit with curve passing through data points
From: jon_b-ga on 25 Oct 2005 01:34 PDT
 
sorry... don't really know lingo.
Subject: Re: 4D Curve Fit with curve passing through data points
From: williamdonelson-ga on 25 Oct 2005 03:02 PDT
 
Can you give me a good step-by-step algorithm? (I know C, Fortran, PL/1, etc)
Subject: Re: 4D Curve Fit with curve passing through data points
From: quantummechanique-ga on 05 Dec 2005 01:19 PST
 
You could check out http://www.scilab.org/. It's a free math program
that has visualisation features.
Subject: Re: 4D Curve Fit with curve passing through data points
From: williamdonelson-ga on 05 Dec 2005 02:10 PST
 
SciLab does not have what I want, thanks.
Subject: Re: 4D Curve Fit with curve passing through data points
From: quantummechanique-ga on 05 Dec 2005 05:23 PST
 
Maybe you could find what you need from AutoCAD. Following texts are
from AutoCAD 2004 Help: User Documentation
{
By entering a formula on the command line, you can quickly solve a
mathematical problem or locate points in your drawing. The CAL command
runs the AutoCAD 3D calculator utility to evaluate vector expressions
(combining points, vectors, and numbers) and real and integer
expressions. The calculator performs standard mathematical functions.
It also contains a set of specialized functions for calculations
involving points, vectors, and AutoCAD geometry. With the CAL command,
you can

Calculate a vector from two points, the length of a vector, a normal
vector (perpendicular to the XY plane), or a point on a line.
Calculate a distance, radius, or angle. 
Specify a point with the pointing device. 
Specify the last-specified point or intersection. 
Use object snaps as variables in an expression. 
Convert points between a UCS and the WCS. 
Filter the X, Y, and Z components of a vector. 
Rotate a point around an axis.
}
{
AutoLISP has been enhanced with Visual LISP (VLISP), which offers an
integrated development environment (IDE) that includes a compiler,
debugger, and other development tools to increase productivity. VLISP
adds more capabilities and extends the language to interact with
objects using ActiveX. VLISP also enables AutoLISP to respond to
events through object reactors.
}
Subject: Re: 4D Curve Fit with curve passing through data points
From: williamdonelson-ga on 05 Dec 2005 06:18 PST
 
---- NOTE -----

I do not need a solution for a Particular Set of numbers. I need a
step-by-step ALGORITHM to include in a programme I am writing, so that
the programme can solve the problem for an arbitrary set of numbers.

I need an algorithm.

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