ios - 限制 CGVector 的长度,同时保持其方向
<p><p>我需要使用 <code>CGVector</code> 在两个 SpriteKit 节点之间移动,其长度例如为 100(红色箭头)。</p>
<p>但我想将向量的长度限制为 70,如果它超过 70(绿色箭头)。因此,我需要“削减”红色矢量的长度,但保持其方向。</p>
<p> <img src="/image/h2vkJm.png" alt="Drawing of a vector showing actual length and limited length"/> </p>
<p>我该怎么做?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>假设您有一个 <code>CGVector</code> 类型的变量 <code>v</code>。首先,计算它的长度:</p>
<pre><code>double len = hypot(v.dx, v.dy);
</code></pre>
<p>然后,如果它大于 70,则将两个分量除以 <code>len</code>,然后乘以 70,使向量的长度等于 70:</p>
<pre><code>if (len > 70.0)
{
v.dx *= 70.0 / len;
v.dy *= 70.0 / len;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 限制 CGVector 的长度,同时保持其方向,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/44327045/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/44327045/
</a>
</p>
页:
[1]