我已经阅读线程,使这4点,但只有在二维空间发生在这里。我已经实现了3d的答案,但这里只有3个控制点我读过这篇文章,但不理解sudo代码或数学有人能用java简化吗?我不想把曲线画成两段三个点
zbsbpyhn1#
三次贝塞尔曲线分量公式(如x):
X(t) = P0.X*(1-t)^3 + 3*P1.X*(1-t)^2*t + 3*P2.X*(1-t)*t^2 + P3.X*t^3
哪里 P0 以及 P3 是终点,和 P1 一 P2 是控制点。曲线有四个点( SrcPt 数组),端点与贝塞尔端点重合,曲线上的两个内部点应定义两个控制点 P1 一 P2 贝塞尔曲线。为了计算,我们必须知道-什么 t 参数对应于 SrcPt[1] 以及 SrcPt[2] . 让这些参数为1/3和2/3(可能的问题在链接的答案中)。所以替代 t=1/3 以及 t=2/3 上式:
P0
P3
P1
P2
SrcPt
t
SrcPt[1]
SrcPt[2]
t=1/3
t=2/3
SrcPt[1].X = SrcPt[0].X*(1-1/3)^3 + 3*P1.X*(1-1/3)^2*1/3 + 3*P2.X*(1-1/3)*1/3^2 + SrcPt[3].X*1/3^3 SrcPt[2].X = SrcPt[0].X*(1-2/3)^3 + 3*P1.X*(1-2/3)^2*2/3 + 3*P2.X*(1-2/3)*(2/3)^2 + SrcPt[3].X*2/3)^3
解决这个系统的未知问题 P1.X 以及 P2.X . 所以我们将有所有需要的点来描述贝塞尔曲线。链接答案实现了解决方案。示例-如何改变 t 相同内部点的值对曲线的影响:
P1.X
P2.X
1条答案
按热度按时间zbsbpyhn1#
三次贝塞尔曲线分量公式(如x):
哪里
P0
以及P3
是终点,和P1
一P2
是控制点。曲线有四个点(
SrcPt
数组),端点与贝塞尔端点重合,曲线上的两个内部点应定义两个控制点P1
一P2
贝塞尔曲线。为了计算,我们必须知道-什么t
参数对应于SrcPt[1]
以及SrcPt[2]
. 让这些参数为1/3和2/3(可能的问题在链接的答案中)。所以替代
t=1/3
以及t=2/3
上式:解决这个系统的未知问题
P1.X
以及P2.X
. 所以我们将有所有需要的点来描述贝塞尔曲线。链接答案实现了解决方案。示例-如何改变
t
相同内部点的值对曲线的影响: