Ю2.7

Задача.

Треугольник и круги.

Лежит ли заданный  на плоскости треугольник АВС в области пересечения заданных кругов:

[latex](x-a1)^2+(y-b1)^2<r1^2[/latex] , и [latex](x-a2)^2+(y-b2)^2<r2^2[/latex]  ?
Ссылка на программу на С++: http://ideone.com/NYTAWN

Код программы на Java:

Ссылка на программу на Java:http: //ideone.com/QZ7RB1

Решение:

Поскольку все фигуры выпуклые достаточно проверить вершины треугольника. Подставляем координаты всех трёх вершин в оба неравенства. Если все условия удовлетворены, то лежит. Если хоть одно условие не выполняется, то не лежит.

Тест

a1 b1 r1 a2 b2 r2 ax bx cx ay by cy Принадлежит?
1 2 3 3 4 5 6 7 8 6 7 4 нет
1 2 15 3 4 12 6 7 8 6 7 4 да
7 5 10 4 6 16 6 7 3 5 6 7 да
7 5 5 4 6 3 6 7 3 5 6 7 нет

 

Related Images: