【问题标题】:Limit CGVector's length while keeping its direction在保持方向的同时限制 CGVector 的长度
【发布时间】:2017-06-02 10:45:31
【问题描述】:

我需要在两个 SpriteKit 节点之间移动,CGVector 的长度例如为 100(红色箭头)。

但我想将向量的长度限制为 70,如果它超过 70(绿色箭头)。所以,我需要“切割”红色矢量的长度,但要保持它的方向。

我该怎么做?

【问题讨论】:

    标签: ios macos vector core-graphics


    【解决方案1】:

    假设您有一个CGVector 类型的变量v。首先,计算它的长度:

    double len = hypot(v.dx, v.dy);
    

    然后,如果大于 70,则将两个分量除以 len 并乘以 70,使向量的长度等于 70:

    if (len > 70.0)
    {
        v.dx *= 70.0 / len;
        v.dy *= 70.0 / len;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多