加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 立方贝塞尔曲线 – 给定给定X的Y

发布时间:2020-12-17 00:28:44 所属栏目:大数据 来源:网络整理
导读:我有一个三次贝塞尔曲线,其中给出了第一个和最后一个点(即P0(0,0)和P3(1,1)). 其他两点如下定义:立方贝塞尔(0.25,0.1,0.25,1.0)(X1,Y1,X2,Y2,也不得分别为0或1以上) 现在我需要做什么才能获得给定X的Y坐标,假设只有一个? (我知道在某些情况下,可以有多个值
我有一个三次贝塞尔曲线,其中给出了第一个和最后一个点(即P0(0,0)和P3(1,1)).
其他两点如下定义:立方贝塞尔(0.25,0.1,0.25,1.0)(X1,Y1,X2,Y2,也不得分别为0或1以上)
现在我需要做什么才能获得给定X的Y坐标,假设只有一个? (我知道在某些情况下,可以有多个值,但是让我们把它们放在一边,我不是在这里做火箭科学,我只是希望能够每秒多次获得Y次数)

我设法挖掘这个:y coordinate for a given x cubic bezier,但我不明白xTarget代表什么.
哦,这也是没有功课,我只是有点恼火的事实,在互联网上没有关于立方贝塞尔曲线的可理解的东西.

如果你有
P0 = (X0,Y0)
P1 = (X1,Y1)
P2 = (X2,Y2)
P3 = (X3,Y3)

然后对于[0,1]中的任何一个t,您可以在坐标给出的曲线上得到一个点

X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3
Y(t) = (1-t)^3 * Y0 + 3*(1-t)^2 * t * Y1 + 3*(1-t) * t^2 * Y2 + t^3 * Y3

如果给出x值,则需要找出[0,1]中的哪个t值对应于曲线上的那个点,然后使用这些t值来找到y坐标.

在上面的X(t)方程中,将左侧设置为x值并插入X0,X1,X3.这样就可以使用变量t的三次多项式.你解决这个t,然后将该t值插入到Y(t)方程中得到y坐标.

解决cubic polynomial是棘手的,但可以通过仔细使用一种方法来解决三次多项式来完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读