Дуги сталкиваются немного сложнее, чем обычные, но используя булеву алгебру, вы можете легко проверить, находится ли заданная точка внутри вашей дуги.
Посмотрите на следующую картинку.
Здесь есть 3 объекта. Черная сфера, это визуализирует вашу дугу, если с ней что-то сталкивается, это может быть внутри вашей дуги. Красная сфера сверху черной сферы, это визуализирует «внутри» дуги, если что-то находится внутри красной сферы, это определенно не «внутри» дуги. Теперь есть также зеленый треугольник, который визуализирует «обрезание» вашей дуги, все, что находится внутри зеленого треугольника, также определенно не находится в вашей дуге.
Тестирование, если что-то находится внутри черной сферы, легко. (расстояние объекта до центра сферы <= радиус сферы). То же самое для красной сферы. Зеленый треугольник немного хитрый, вы должны сначала построить это. Найдите начальный и конечный радианы вашей дуги. и поверните единичный вектор начальными радианами. Затем поверните единичный вектор на конечные радианы. Удлините оба этих вектора на 2 * радиуса черной сферы. Теперь используйте центральную точку вашей дуги и положения двух векторов с добавлением центрального положения в качестве 3-х точек треугольника. Затем вы можете использовать один из решателей столкновения точка-треугольник: <a href="http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web" rel="noreferrer">http://www.bing.com/search?q=point+triangle+collision&go=&form=QBLH&scope=web
Помните: столкновение с дугой = (столкновение с черной сферой) &&! (Столкновение с красной сферой) &&! (Столкновение с зеленым треугольником).