【发布时间】:2011-05-30 23:10:34
【问题描述】:
我正在尝试使用单个 3D 三次贝塞尔曲线来渲染“3D 色带”来描述它(色带的宽度是恒定的)。第一个和最后一个控制点有一个与它们相关的法线向量(它们总是垂直于这些点的切线,并描述了这些点上色带的表面法线),我试图平滑地插入法线向量曲线的过程。
例如,给定一条形成字母“C”的曲线,第一个和最后一个控制点的表面法线都指向上方,色带应该从平坦开始,与地面平行,慢慢转动,然后再次平坦结束,面向与第一个控制点相同的方向。要“顺利”完成此操作,它必须在曲线的中途面向外。目前(对于这种情况),我只能让所有表面都朝上(而不是在中间向外),这会在中间产生难看的过渡。
这很难解释,我在这个示例的下方附上了一些图片,说明了它目前的样子(所有表面朝上,中间急剧翻转)和它应该是什么样子(平滑过渡,表面缓慢旋转)圆形的)。银色面代表正面,黑色面代表背面。
不正确,目前的样子:
Correct Ribbon http://img211.imageshack.us/img211/4659/ribbonincorrect.th.png
正确,它应该是什么样子:
Incorrect Ribbon http://img515.imageshack.us/img515/2673/ribboncorrect.th.png
我真正需要的是能够为 3D 三次贝塞尔曲线上的任何点计算这个“混合法线向量”,我可以毫无问题地生成多边形,但我不知道如何让它们如图所示顺利旋转。完全不知道如何进行!
【问题讨论】:
标签: math geometry bezier polygons