use*_*913 0 math 3d matlab geometry bezier
我将双三次贝塞尔曲线存储为 16float3点
float3 bezier[16];
Run Code Online (Sandbox Code Playgroud)
这是 4 组,每组 4 点
{A4 B4 C4 D4} // 4th curve
{A3 B3 C3 D3} //3rd curve
{A2 B2 C2 D2} //2nd curve
{A1 B1 C1 D1} //1st curve
Run Code Online (Sandbox Code Playgroud)
好吧,我评估给定位置t, p(t)从t到 的0.0点1.0。这很容易。我使用这一点,例如:
{1st curve point p0(t=0 ) , 2nd curve point p1(t=0 ), 3rd p2(t=0 ), 4th p3(t=0 ) }
{1st curve p0(t=0.1) , 2nd p1(t=0.1), 3rd p2(t=0.1), 4th p3(t=0.1) }
Run Code Online (Sandbox Code Playgroud)
评估和绘制“正交”(横向)曲线。
我无法理解一件事,第一条基本曲线的控制点 B、C 是控制点,据我所知,它们并不位于曲面上。这些都p(t)在表面*上的四个基本曲线上进行评估,然后我使用它们来评估正交曲线(有点像正交A' B' C' D'),然后评估q(t)我用来绘制路径的值
简而言之,可以肯定地理解:
我用四{A, B, C, D}组来评估四条p(t)曲线
t,步长为1/30,三十步;然后我将这些p(t)点作为{A' B' C' D'} 评估q(t)正交/横向曲线
我无法理解的是:
如果B,C基本曲线不在曲面上,为什么在第二步中我要取p2(t), p3(t)点。如果它们位于表面作为B' C'控制点?
不是很矛盾吗?
或者也许评估的p[1,2](t)也不铺设在表面上 - 但如果是这样,为什么所有评估的横向都铺设在评估未铺设的q(t)表面上?p(t)不是很矛盾吗?如果我在p方向上评估,我会得到虚拟点,如果我在q方向上评估,我会得到真实点?
有人可以解释一下吗?
我不明白你被困在哪里,但贝塞尔曲面控制点并不位于曲面本身(好吧,不是全部,四个角都在)。
要评估贝塞尔曲面上的点,您需要这些控制点,但需要它们将它们插入贝塞尔曲面方程中。描述方程有两种主要方式:解析形式和矩阵形式。
维基百科显示的:
其中K是控制点,u,v 从 0 到 1。
矩阵在哪里:
在这种情况下,P 是控制点,但 u,v 也从 0 到 1。
您可以选择其中任何一个来计算表面上的任何点,只需评估给定 12 个控制点和选定的 u,v 对的方程即可。
资料来源:http ://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV0405/DONAVANIK/bezier.html