How to interpolate a 3D trajectory
restedumonde
This issue may have already been raised in this forum, but I cannot find a solution. Here is my problem:
I have a 3D trajectory defined by a set of X Y Z coordinates in a 2D wave with 3 columns and N rows, each column corresponds to the X, Y and Z coordinate.
I enter a limited number of coordinates manually in the wave, defining my 3D trajectory.
I would like to increase the number of points of the wave, by interpolating the 3D trajectory.
Does Igor have a function that is already programmed for that purpose?
If no, any idea how to do that?
Thank you.
restedumonde
1) you could just apply a linear interpolation between two points. That results in three linear independent, easy equations.
As a drawback the trajectory will have kinks at the points you set. Depending on your data this might be acceptable (provided data points are "close" to each other) but the atom "enter ... manually" makes me worry.
2) You will need the first (and maybe second) order gradients of your trajectory to compute a "3D-Bézier" (or better) curve. (see
The main difficulty is that interpolation in one dimension works fine (a linear type is generally accepted); two dimensions are difficult; and your issue covers three dimensions. However, if you have a linear parametrization (tree functions [x(t),y(t),z(t)] dependent on ONE variable (t) ) of your trajectory, you are fine.
Sorry, had a couple,
HJ
June 24, 2015 at 03:14 pm - Permalink