//pointsAmount:生成的点数
//return 路径点的Array
function CreateBezierPoints(anchorpoints, pointsAmount) {
var points = []
for (var i = 0i <pointsAmounti++) {
var point = MultiPointBezier(anchorpoints, i / pointsAmount)
points.push(point)
}
return points
}
function MultiPointBezier(points, t) {
var len = points.length
var x = 0, y = 0
var erxiangshi = function (start, end) {
var cs = 1, bcs = 1
while (end >0) {
cs *= start
bcs *= end
start--
end--
}
return (cs / bcs)
}
for (var i = 0i <leni++) {
var point = points[i]
x += point.x * Math.pow((1 - t), (len - 1 - i)) * Math.pow(t, i) * (erxiangshi(len - 1, i))
y += point.y * Math.pow((1 - t), (len - 1 - i)) * Math.pow(t, i) * (erxiangshi(len - 1, i))
}
return { x: x, y: y }
}
以上是计算高阶贝赛尔曲线所有点的方法,
方法引用了引用公式
:
一次、二次、三次贝塞尔曲线函数
function onebsr(t, a1, a2) {
return a1 + (a2 - a1) * t
}
function twobsr(t, a1, a2, a3) {
return ((1 - t) * (1 - t)) * a1 + 2 * t * (1 - t) * a2 + t * t * a3
}
function threebsr(t, a1, a2, a3, a4) {
return a1 * (1 - t) * (1 - t) * (1 - t) + 3 * a2 * t * (1 - t) * (1 - t) + 3 * a3 * t * t * (1 - t) + a4 * t * t * t
}
参考 https://www.cnblogs.com/lxiang/p/4995255.html
曲线通常假定向右下方倾斜是因为经济学家一般假定投资需求是利率的减函数以及储蓄是收入的增函数。这就是说,利率上升时,投资会减少,利率下降时,投资会增加,以及收入上升时储蓄会增加,收入下降时储蓄会减少。在这样的情况下,利率下降时,投资增加,为了达到产品市场均衡,或者说投资与储蓄相等,储蓄和收入必须增加。这样较低的利率必须与较高的收入相结合才能达到产品市场均衡。
于是,当坐标图形上以纵轴表示利率,横轴表示收入时,JS曲线就会向右下方倾斜。IS曲线是描述产品市场均衡时,利率与国民收入之间关系的曲线,由于在两部门经济中产品市场均衡时I=S,因此该曲线被称为IS曲线。总产出与利率之间存在着反向变化的关系,即利率提高时总产出水平趋于减少,利率降低时总产出水平趋于增加。 所以is曲线像右下方倾斜。如果假设曲线是向上倾斜的,则违背了任何一种商品越多越好的假设。在坐标中,右上的市场篮子组合的一定比左下方的篮子更受偏好,因为,此时的X与Y的量都是增加的,获得商品多了,消费者的效用会增加, 我们必须设有假设条件,以便更准确的研究。如果曲线向原点外凸,则显示出,购买更多的商品消费者的偏好与购买较少商品的偏好一样,这是违背假设的。