双三次贝塞尔补丁 - 理解困难
bicubic bezier patch - trouble with understanding
我得到 双三次贝塞尔 补丁存储为 16 float3
点
float3 bezier[16];
那是 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
好的,我评估给定 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) }
评估并绘制 'orthogonal'(横向)曲线。
我无法理解一件事,第一条基曲线的那些控制点 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)
orthogonal/transverse 曲线
我无法理解的是:
如果基曲线中的B,C
不在表面上,为什么在第二步中我取p2(t), p3(t)
点。如果它们作为 B' C'
控制点放置在表面上?
这不是不一致吗?
或者也许评估 p[1,2](t)
也不铺设在表面上 - 但如果是这样,为什么所有横向评估 q(t)
都铺设在评估 p(t)
不铺设的表面上?不矛盾吗?如果我在 p
方向求值,我得到虚拟点,如果我在 q
方向求值,我得到实点 ?
有人可以解释一下吗?
我不明白你卡在哪里了,但是贝塞尔曲面控制点不在曲面本身(好吧,不是所有的,4 个角都在)。
要评估贝塞尔曲面上的点,您需要这些控制点,但您需要它们将它们代入贝塞尔曲面方程。方程的描述方式主要有两种:解析形式和矩阵形式。
分析型
维基百科显示的那个:
其中 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
我得到 双三次贝塞尔 补丁存储为 16 float3
点
float3 bezier[16];
那是 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
好的,我评估给定 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) }
评估并绘制 'orthogonal'(横向)曲线。
我无法理解一件事,第一条基曲线的那些控制点 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)
orthogonal/transverse 曲线
我无法理解的是:
如果基曲线中的B,C
不在表面上,为什么在第二步中我取p2(t), p3(t)
点。如果它们作为 B' C'
控制点放置在表面上?
这不是不一致吗?
或者也许评估 p[1,2](t)
也不铺设在表面上 - 但如果是这样,为什么所有横向评估 q(t)
都铺设在评估 p(t)
不铺设的表面上?不矛盾吗?如果我在 p
方向求值,我得到虚拟点,如果我在 q
方向求值,我得到实点 ?
有人可以解释一下吗?
我不明白你卡在哪里了,但是贝塞尔曲面控制点不在曲面本身(好吧,不是所有的,4 个角都在)。
要评估贝塞尔曲面上的点,您需要这些控制点,但您需要它们将它们代入贝塞尔曲面方程。方程的描述方式主要有两种:解析形式和矩阵形式。
分析型
维基百科显示的那个:
其中 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