【问题标题】:vector angular offset矢量角偏移
【发布时间】:2012-09-18 21:27:01
【问题描述】:

假设我有 2 个点 - A 和 B。它们之间和 0,0 形成一个角度,我想移动点 A,以便点 B 移动也保持它们之间的角度。

现在我将矢量偏移量转换为弧度,添加我需要的角度并转换回法线矢量,然后我用它来将 B 放置在正确的位置。不过我想知道,是否可以通过避免跳转到角度和返回来优化这个过程?由于正弦函数在 CPU 上的计算成本很高,因此可以提供很大的加速。

【问题讨论】:

  • 要保留哪个角度? A和B在(0, 0)处的夹角?
  • 那么B的位置不是唯一的。假设原点是 O,那么您可以将 B 放在射线 OB 上的任何位置,同时保持 A 不变。对于 A 的任何位置,B 都有无限多个可能的位置保持 O 处的角度。
  • 是的,我知道这一点。我需要的是归一化矢量形式的射线 OB
  • A的运动是如何定义的;通过向量 (x,y) 进行平移还是什么?

标签: math


【解决方案1】:

将两个向量归一化为vec(a)vec(b)。假设向量之间的角度是ang(p),保持一个A=[cosp,-sinp;sinp, cosp]的变换矩阵(这个不需要反复计算,因为它是常数),因为它们之间的角度不会改变变换旋转的单位向量vec(a1)用矩阵A得到单位向量vec(b1),然后撤消归一化得到实值。如果存在许多点,则必须保留所有这些角度的矩阵。

【讨论】:

    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多