开发者

Finding a third degree equation that fits two points with given slopes in javascript

I need to draw a line in my website, actually a curve representing a third degree polynom. What is the easiest way of fin开发者_JAVA百科ding a third degree equation that fits two points with given slopes in javascript?

Find the third degree equation for(or find the coeffecient a,b,c,d in general formula ax^3+bx^2+cx+d = y):

startX, startY, startSlope

endX, endY, endSlope


Essentially this is just straightforward math.

You've got an unknown expression y=ax3+bx2+cx+d. You can drop quite a few terms by defining x' = (x-startX)/endX (i.e. startX' = 0, endX' = 1). You'll also have to scale the slopes; startSlope' = startSlope * 1/(endX-startX).

From this it follows that d' = startY. That's your first free parameter.

Next, note that the slope is trivially obtained by differentiation. dy/dx' = 3a'x'2+2b'x'+c'. Therefore, c' is just startSlope'.

a' and b' take a pair of equations: endY = a'+b'+c'+d', and endSlope = 3a'+2b'+c'+d'. Therefore a' = endSlope' - 2*endY, and b' = 3*endY - endSlope'.


Assuming a 3-deg polynomial is ax3+bx2+cx+d, you have four unknowns.

Take the derivative to find the slope. That gives three unknowns (the constant term drops out).

You have two deritive equations for the two slopes. Please two equations for the (x,y) pair on the original equation. Therefore you have a total of four equations for four unknowns.

Solve.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜