有理贝塞尔的透视投影

Perspective projection of rational bezier

提问人:Illari 提问时间:6/2/2022 更新时间:7/11/2022 访问量:132

问:

我需要一种方法将 3d 圆锥投影到 2d。没有一篇文章告诉如何使用理性贝塞尔来做到这一点。我需要一种方法的另一件事是将 3d 或 2d 圆锥分别移动到 4d 或 3d(如反向投影)。我在某处读到,有理贝塞尔可以通过将它们移动到更高的维度并用 de Casteljau 分裂产生的非理性曲线然后向后移动来分裂。我似乎记得圆锥贝塞尔的透视投影可以用圆锥贝塞尔精确表示,并且它可能涉及拆分成几条曲线。我不明白任何关于贝塞尔的网站上的任何文章。

数学 图形 语言无关的 贝塞尔

评论

3赞 6/2/2022
你怎么称呼 3D 圆锥?
0赞 Illari 6/2/2022
三维空间平面上的二次有理贝塞尔
0赞 6/2/2022
所以只是平面上的圆锥体?对 2D 的投影(哪个方向,哪个平面?)仍然是一个圆锥。
0赞 Illari 6/2/2022
每个点的比率是否正确映射而不会失真?
2赞 Mike 'Pomax' Kamermans 6/4/2022
表明你的意思:添加一些图片来阐明你需要做什么,因为现在你的术语对那些了解圆锥和贝塞尔相关数学的人来说没有多大意义。3D 圆锥体通过忽略维度来简单投影。由于 stackoverflow 的想法是一篇帖子有一个问题,这基本上是“我们完成了”。那么你真正想知道什么,你已经拥有什么代码,你已经做了什么(重新)搜索,等等。请阅读发布指南,并更新您的帖子,以便其他人能够理解您的需求并提供帮助。

答:

0赞 Matt Timmermans 6/9/2022 #1

由于没有更好的答案,以下是我可以提供的答案......

透视变换可以将抛物线变为椭圆或双曲线,反之亦然,因此即使可以直接映射 P0、P1 和 P2,权重也会发生变化。

然而,假设一个权重为 (1,w,1) 的圆锥体,它沿着 (P0+P2)/2 到 P1 与曲线相交的直线的距离仅与权重 w 相关,这样您就可以找到新的权重,如下所示:

  1. 将 P0、P1 和 P2 映射到 P0'、P1'、P2'
  2. 计算中点 M' = (P1'+P2')/2
  3. 将 M' 逆映射到 M,并计算直线 M-P1 与原始曲线的交点 I。
  4. 将交点 I 映射到 I',以获得新曲线应与 M'-P1' 相交的点
  5. 从交叉点 I' 的位置计算新权重 w'。曲线在 t=0.5 时得到 I,所以 w' = (M'-I')/(P1'-I')。请注意,这种划分是有道理的,因为被划分的向量是共线的。您可以划分它们的长度或仅划分最大的坐标。

如果您扩展所有步骤,我相信有办法简化此过程。