【问题标题】:Constructing transformation matrix from final position从最终位置构造变换矩阵
【发布时间】:2014-04-24 01:52:55
【问题描述】:

我在 2D 空间中有一个对象,可以旋转/缩放。通常我会直接找到转换矩阵:

  1. 按来源翻译
  2. 旋转
  3. 规模
  4. 按 -origin 翻译
  5. 按原位置翻译

给定 (0,0) 处的原始对象位置,我可以通过将其乘以变换矩阵轻松地将新位置作为向量得到。

但是,对于这个问题,我没有原来的位置。我只有最终的位置。

当我只有已经相乘的向量而不是原始位置时,如何构造相同的变换矩阵?

我还有变换点、旋转和缩放。

【问题讨论】:

  • 你需要知道三个非共线向量的变换来重构变换矩阵。你能明白吗?

标签: math graphics matrix 3d


【解决方案1】:

不确定我是否告诉您任何新内容,但您使用以相反顺序应用的矩阵的逆来找到已转换的原始点。不完全确定这是您正在寻找的,但如果是这样,那么下面有一个解决方案。

以下是 2D 转换的示例。该方法很容易扩展到3D

如您所知,向量 t 和旋转 R 以及尺度 s 的倒数很容易计算和应用。

【讨论】:

  • 当在路线中应用了旋转时,您不能简单地从 w 中减去 t。
  • @felix-castor 我真的不明白你的反对意见。首先,t 不是从 w 中减去,而是从 S^(-1)R^(-1)w 中减去。我所展示的是,如果你对一个点应用一系列变换,那么以相反的顺序应用这些变换的逆将带你回到那个点,并展示你如何从已知的变换中获得逆。用实际值尝试上述方法应该会显示它有效。
  • 对于w = RS(t+v),正如您所写的那样,它可以工作。如果不进行编辑,我无法取消反对票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多