|
|
1
1
(image) http://img441.imageshack.us/img441/9051/soccer.png
显示敌人在红线之间
:
Calculate the distance
两名队员组成的阵线的敌人
(虚线)
. 如果是
显示敌人在橙色线之间 :要检查他是否在其中一名球员后面,只需检查他是否在后面。 between the two lines 通过其中一个球员 normal ( perpendicular )到第一行(穿过两个玩家的虚线)。 这将告诉您敌人是否在黄色区域内: |
|
|
2
1
为什么不旋转你的坐标系,这样两个玩家都会对齐呢? 假设你有一个固定数量的玩家(22个例子),你将他们的(x,y)坐标乘以旋转+平移矩阵,使得s1(或s2,并不重要)与其同伴对齐。 你可以用这个简单的公式计算旋转矩阵: http://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_given_an_axis_and_an_angle 进一步解释和一个好例子: http://www.quantunet.com/flash8/knowledgebase/actionscript/advanced/matrix/matrix_rotation.html |
|
|
3
0
如果只需要近似值,并且需要快速计算,那么就可以估计出物体的“直径”(即使它是平方的),然后乘以它们中心之间的距离(每端减去1个半径,总共1个直径)。这将是非常快和非常接近。 更新:误读了这个问题,我以为你真的想要“这个地区”。 您仍然可以像上面那样近似它,但是确定边点作为虚圆上的点,与连接两个圆的线成90度。同样,它是近似的,但是它可以防止你计算“物体的最近边”和“与直线最接近的点”。 更新2: 实际上,更好的方法是:按照S1点离S2中心的距离排序。选择第二个和第三个最近的。将s2的点按它们距s1中心的距离排序。选择第二个和第三个最近的。这是4个顶点。最接近的“1”是指直接指向另一个物体的那个,所以第2和第3个是面向另一个物体的“侧面”的那个。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |