提问人:Illari 提问时间:6/2/2022 更新时间:7/11/2022 访问量:132
有理贝塞尔的透视投影
Perspective projection of rational bezier
问:
我需要一种方法将 3d 圆锥投影到 2d。没有一篇文章告诉如何使用理性贝塞尔来做到这一点。我需要一种方法的另一件事是将 3d 或 2d 圆锥分别移动到 4d 或 3d(如反向投影)。我在某处读到,有理贝塞尔可以通过将它们移动到更高的维度并用 de Casteljau 分裂产生的非理性曲线然后向后移动来分裂。我似乎记得圆锥贝塞尔的透视投影可以用圆锥贝塞尔精确表示,并且它可能涉及拆分成几条曲线。我不明白任何关于贝塞尔的网站上的任何文章。
答:
0赞
Matt Timmermans
6/9/2022
#1
由于没有更好的答案,以下是我可以提供的答案......
透视变换可以将抛物线变为椭圆或双曲线,反之亦然,因此即使可以直接映射 P0、P1 和 P2,权重也会发生变化。
然而,假设一个权重为 (1,w,1) 的圆锥体,它沿着 (P0+P2)/2 到 P1 与曲线相交的直线的距离仅与权重 w 相关,这样您就可以找到新的权重,如下所示:
- 将 P0、P1 和 P2 映射到 P0'、P1'、P2'
- 计算中点 M' = (P1'+P2')/2
- 将 M' 逆映射到 M,并计算直线 M-P1 与原始曲线的交点 I。
- 将交点 I 映射到 I',以获得新曲线应与 M'-P1' 相交的点
- 从交叉点 I' 的位置计算新权重 w'。曲线在 t=0.5 时得到 I,所以 w' = (M'-I')/(P1'-I')。请注意,这种划分是有道理的,因为被划分的向量是共线的。您可以划分它们的长度或仅划分最大的坐标。
如果您扩展所有步骤,我相信有办法简化此过程。
上一个:拆分有理贝塞尔
下一个:了解无处可去的贝塞尔派生代码
评论