【问题标题】:Perspective projection of rational bezier有理贝塞尔曲线的透视投影
【发布时间】:2022-07-11 20:24:34
【问题描述】:

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

【问题讨论】:

  • 什么叫 3D 圆锥?
  • 3d 空间平面上的二次有理贝塞尔曲线
  • 所以只是平面上的圆锥曲线?到 2D 的投影(哪个方向,哪个平面?)仍然是一个圆锥。
  • 每个点的比率是否会正确映射而不会失真?
  • 显示你的意思:添加一些图片来说明你需要做什么,因为现在你的术语对于了解圆锥曲线和贝塞尔相关数学的人来说没有多大意义。通过字面忽略尺寸来简单地投影 3D 圆锥曲线。而且由于 stackoverflow 上的想法是 one post has one question,这基本上就是“我们完成了”。那么你实际上想知道什么,你已经有什么代码,你已经做了什么(重新)搜索等等。请阅读发布指南,并更新你的帖子,以便其他人可以既了解您的需求,又提供帮助。

标签: math graphics language-agnostic bezier


【解决方案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')。请注意,这种划分是有意义的,因为被划分的向量是共线的。您可以划分它们的长度或只划分最大的坐标。

如果您展开所有步骤,我相信有一些方法可以简化此过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-19
    • 2023-04-06
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    相关资源
    最近更新 更多