菜鸟教程小白 发表于 2022-12-13 15:27:50

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 &gt; 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]
查看完整版本: ios - 限制 CGVector 的长度,同时保持其方向