在javascript中找到一个三次方程,适合两个给定斜率的点

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

本文关键字:两个 斜率 javascript 一个 三次 方程      更新时间:2023-09-26

我需要在我的网站上画一条线,实际上是一条代表三度多边形的曲线。在javascript中找到适合两个给定斜率点的三次方程的最简单方法是什么?

求三次方程(或求通式ax^3+bx^2+cx+d = y中的系数a,b,c,d):

startX, startty, startSlope

endX, endY, endSlope

本质上这只是简单的数学。

你有一个未知的表达式y=ax3+bx2+cx+d。你可以通过定义x' = (x-startX)/endX(即startX' = 0, endX' = 1)删除一些术语。你还必须缩放斜率;startSlope' = startSlope * 1/(endX-startX)。

由此得出d' = startY。这是第一个自由参数。

接下来,注意斜率是通过微分得到的。Dy/dx' = 3a'x'2+2b'x'+c'。因此,c'就是startSlope'。

a'和b'取一对方程:endY = a'+b'+c'+d', endSlope = 3a'+2b'+c'+d'。因此a' = endSlope' - 2*endY, b' = 3*endY - endSlope'。

假设一个3度多项式是ax3+bx2+cx+d,你有四个未知数。

求导求斜率。这就得到了三个未知数(常数项去掉了)。

对于两个斜率有两个导数方程。请在原方程上写出(x,y)对的方程。因此,你总共有四个方程,四个未知数。

解决。