Skip to content

Instantly share code, notes, and snippets.

@andrey-helldar
Last active August 25, 2019 10:44
Show Gist options
  • Save andrey-helldar/71c8da1627d1ad0851b1219dfc065b6d to your computer and use it in GitHub Desktop.
Save andrey-helldar/71c8da1627d1ad0851b1219dfc065b6d to your computer and use it in GitHub Desktop.
Необходимо написать функцию hasCollision() на php, которая проверяет, пересекается ли заданный круг хотя бы с одним кругом из списка. Круг - это индексный массив, содержащий три элемента типа int [ x, y, radius ], где x и y - координаты центра круга. (решение)
<?php
/*
* Необходимо написать функцию hasCollision() на php, которая проверяет,
* пересекается ли заданный круг хотя бы с одним кругом из списка.
* Круг - это индексный массив, содержащий три элемента типа int [ x, y, radius ],
* где x и y - координаты центра круга.
*/
function hasCollision(array $circle, array $circlesLists): bool {
foreach ($circlesLists as $list) {
if ($result = array_intersect($circle, $list)) {
return true;
}
}
return false;
}
@nikiforov-org
Copy link

nikiforov-org commented Aug 24, 2019

Так не будет работать, функция array_intersect лишь возвращает совпадения по массивам.
$circle = [4, 4, 3] и $list = [10, 10, 4] вернёт true, хотя они не пересекаются.
Вот решение: https://gist.github.com/nikiforov-org/5c224f6af7f5adeff28d14bb3e3d8e9b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment