gpt4 book ai didi

PHP 确定距离

转载 作者:可可西里 更新时间:2023-10-31 22:57:32 24 4
gpt4 key购买 nike

我有一个巨大的 30x100 数组,代表一个足球场。我让玩家在其中移动。但是,当球被抛出时,我需要确定其他球员是否在轨迹的 +/-1 范围内以可能拦截传球。

由于一些(和大多数)传球是对角线传球,我很难弄清楚如何确定一个算法来评估这种事情。

我的领域看起来像

1 2 3 4 5 6 7 ...
2
3
4
5
6
7
...

字符只能从整数移动(因此每个字符在每个时刻都有一组坐标,例如 (3,2) 或 (20,90))。

要确定一名球员是否在我的传球轨迹的特定范围内(比如传球从 (2,4) 到 (30,15)),最简单的方法是什么?

最佳答案

所以你在 ($x0, $y0) 处有一个传球手,如果没有人接住传球,传球就会下降 ($x1, $y1) ,以及 ($x, $y) 的潜在接收者。您想找出 ($x, $y) 处的接收器与从 ($x0, $y0)($x1 , $y1).

这是由这个等式给出的:

$d = abs( ( $x1 - $x0 ) *  ( $y0 - $y ) - ( $x0 - $x ) * ($y1 - $y0 ) ) / 
sqrt( pow( $x1 - $x0, 2 ) + pow ($y1 - $y0, 2 ) );

你可以找到一个推导 here .

这只会让您到达(无限长)线,但是,它可能在包含传球的线之外。要获得正确答案,请在此处查看 Grumdrig 的答案:Shortest distance between a point and a line segment

关于PHP 确定距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com