gpt4 book ai didi

javascript - 如何计算贝塞尔曲线上的控制点?

转载 作者:行者123 更新时间:2023-11-30 06:06:48 25 4
gpt4 key购买 nike

我确实有一条贝塞尔曲线,在某个点,我想要第二条贝塞尔曲线以平滑的方式“分支”第一条曲线。除了计算交点(按照贝塞尔曲线的百分比),我还需要控制点(切线和权重)。使用以下 javascript 计算交点:

getBezier = function getBez(percent,p1,cp1,cp2,p2) {
function b1(t) { return t*t*t }
function b2(t) { return 3*t*t*(1-t) }
function b3(t) { return 3*t*(1-t)*(1-t) }
function b4(t) { return (1-t)*(1-t)*(1-t) }
var pos = {x:0,y:0};
pos.x = p1.x*b1(percent) + cp1.x*b2(percent) + cp2.x*b3(percent) + p2.x*b4(percent);
pos.y = p1.y*b1(percent) + cp1.y*b2(percent) + cp2.y*b3(percent) + p2.y*b4(percent);
return pos;
}

(非 IE 浏览器可以在 http://www.iscriptdesign.com -> Tutorial -> Groups & Paths 看到它的运行)。我现在需要的是分支点的控制点或(切线和权重)(我不知道从哪里开始,我希望有人可以指出一些代码或数学方程式,如果可能的话作为来自相同参数的函数如上面的 getBezier 函数)。

最佳答案

发现并实现了它:de-Casteljau 算法被证明是最快的可实现解决方案。它目前存在于: iScriptDesign (教程 -> Spit Bezier)。

关于javascript - 如何计算贝塞尔曲线上的控制点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3958257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com