Register to reply

Get y from x on the cardinal spline curve

by mishalkk
Tags: spline
Share this thread:
Nov30-11, 06:37 AM
P: 4

I have implemented the cardinal spline curve. ref link:-

My requirement is to get the Y Value along the spline curve for a given x.Please look at the image attached below.

Here P1,P2,P3,P4 are my Points and cardinal spline passes through these points. But how can I find the point along the curve whose x-value is given.How can I find out the point of intersection?

Phys.Org News Partner Science news on
'Office life' of bacteria may be their weak spot
Lunar explorers will walk at higher speeds than thought
Philips introduces BlueTouch, PulseRelief control for pain relief
Nov30-11, 06:38 PM
HW Helper
P: 925
What you need to do is find the value of t (or whatever your parameter is called) that produces the desired value of x (1.5 in your case). Should be close to 0.5 if you are using parameter range of 0 to 1 and the plot is to scale. Once you know t you can calculate the corresponding value of y. In this case, you have to solve a cubic, which in general can have 3 values of t that produce the same x. In your case, the function is very normal looking, so you would only have 1 real solution. As far as I know, there are basically two choices, (1) solve the cubic algebraically (internet search will help find the formula) or (2) use a numerical method such as Newton-Raphson or subdivision. Thus is the challenge when using parametric equations.
Dec8-11, 06:40 AM
P: 4
Thank you .I have followed the above method.

Formula : P(t) = s(-t3 + 2t2 – t)P1 + s(-t3 + t2)P2 + (2t3 – 3t2 + 1)P2 + s(t3 – 2t2 + t)P3 + (-2t3 + 3t2)P3 + s(t3 – t2)P4

where P is the point on the curve,P1,P2,P3,P4 are the actual points, s is the tanget and it is inversely proportional to t. and t is the tension. I calculate P(t)x and P(t)y co ordinates for the t varying from 0 to 1.

But these points are approximate. Not exact. I need to get the exact position on the curve.

Can anyone suggest me any methods with which I can find the point on the curve?

Or how the points are drawn using the actual points and control points?

Thank you

I like Serena
Dec8-11, 12:37 PM
HW Helper
I like Serena's Avatar
P: 6,189
Get y from x on the cardinal spline curve

Hi mishalkk!

I'm not sure where your "s" comes from.
I don't see it in your reference.
Is it simply s=1/t?

Either way, you should have a parametric curve P(t) consisting of P(t)x and P(t)y.
Solve P(t)x=1.5 to find t, and substitute in P(t)y, as hotvette said.

The difficulty of course is to solve P(t)x=1.5 for which you need to solve a cubic equation.
Do you need help with that?
Dec8-11, 11:24 PM
P: 4

Thank you for your reply :)

Cardinal splines specify the tangents at interior points based on the vector from previous point to subsequent point. Each tangent is parallel to this vector and some multiple of its length. For example, the tangent direction at point P1 is parallel to the vector P2 P0, or we could simply write something like T1 = s(P2 P0) where s is a real number.

Here is the pat of the code.
xtarget is the input value X, here in my case 1.5

 for (Double t = 0; t<=1; t += 0.01)
      s = (1 - t) / 2;
P(t)x = s(-t3 + 2t2  t)P1X + s(-t3 + t2)P2X + (2t3  3t2 + 1)P2X + s(t3  2t2 + t)P3X + (-2t3 + 3t2)P3X + s(t3  t2)P4X

P(t)y = s(-t3 + 2t2  t)P1Y + s(-t3 + t2)P2Y + (2t3  3t2 + 1)P2Y + s(t3  2t2 + t)P3Y+ (-2t3 + 3t2)P3Y + s(t3  t2)P4Y

return P(t)y;
I get P(t)y which is approximate. But it is not the exact point on the curve(sometimes it is not on the curve). I need to get the exact points on the P(t)y which is exactly on the curve.Any help is appreciated.

Thank you :)
Dec9-11, 04:22 AM
P: 4
I got it :)

Register to reply

Related Discussions
The power of a cardinal number to another cardinal number Set Theory, Logic, Probability, Statistics 4
Cardinal Numbers Set Theory, Logic, Probability, Statistics 1
Creating a sphere from a spline curve Differential Geometry 1
Create tangent to a 2D spline curve in Pro/E Mechanical Engineering 3
Between cardinal 0 and cadinal 1 General Math 20