Для прямоугольников, находящихся полностью внутри дуги, вы можете проверить - принадлежит ли любая угловая точка (x, y)
толстой дуге. Для центра дуги (cx, cy)
, внутреннего и внешнего радиусов r
и R
и углов a0,a1
:
dist = length(x - cx, y - cy)
if dist lies in range r..R:
angle = atan2(y-cy, x-cx)
if angle in range a0..a1:
rectangle is inside
Еще один нестандартный случай: чтобы определить, находится ли дуга полностью внутри большого прямоугольника, просто проверьте, лежит ли какая-либо точка дуги в этом прямоугольнике.