【发布时间】:2013-12-19 15:49:21
【问题描述】:
我正在尝试在画布中的两点之间绘制一条平滑的弧线,我已将这些点设置为 sutch note,这些点是动态的并且可以更改。
var p1 = {
x=100, y=100
}
var p2 = {
x=255, y=255
}
曲线看起来像这样
这是我开始的代码,我无法理解这个函数的数学/逻辑:
function curveA2B(a,b){
var mindpoint = {
x: (a.x+b.x)/2,
y: (a.y+b.y)/2,
d: Math.sqrt(Math.pow(b.x-a.x,2) + Math.pow(b.y-a.y,2))
};
context.beginPath();
context.arc(
a.x,
a.y,
mindpoint.d/2,
1.5*Math.PI,
0,
false
);
context.arc(
b.x,
b.y,
mindpoint.d/2,
1*Math.PI,
0.5*Math.PI,
true
);
context.context.stroke();
}
【问题讨论】:
-
提示:思考三角形。
-
提示:想想样条曲线! @DevlshOne:您引用的上一个 SO 答案有一个很好的例子,用样条连接点。样条曲线只是一组单独的二次曲线,它们被设计成看起来像一条穿过给定点集的曲线。
标签: javascript html math canvas