Sergomen
@Sergomen
Просто делай добро и оно вернётся

Как проверить принадлежность треугольника пересечению двух окружностей?

Есть задание:

Треугольник и круг. Лежит ли заданой площади треугольник
AВС в области пересечения заданых кругов:
(х-а1)^2 + (y-b1)^2 <= r1^2
(х-а2)^2 + (у-b2)^2  <= r2^ 2

Я не могу понять, как узнать, что этот треугольник лежит на пересечении этих кругов?

Вот мой код:

#include <iostream>
#include <math.h>
// #include <Windows.h>
using namespace std;

int main(){
	// SetConsoleOutputCP(1251);
	float x,y,a1,b1,a2,b2,result,r1,r2;
	cout << "x: ";
	cin >> x;	
	cout << "y: ";
	cin >> y;
	cout << "a1: ";
	cin >> a1;	
	cout << "b1: ";
	cin >> b1;
	cout << "a2: ";
	cin >> a2;
	cout << "b2: ";
	cin >> b2;
	cout<< "r1: ";
	cin >> r1;
	cout << "r2: ";
	cin >> r2;
	pow(r1,2) >= pow((x - a1),2) + pow((y - b1),2);
	pow(r2,2) >= pow((x - a2),2) + pow((y - b2),2);
	if(pow(r1,2) >= pow((x - a1),2) + pow((y - b1),2)){
		cout << "text:true";
	}
	cout << "r1: " << r1;
	cout << " r2: " << r2<<endl;
	return 0;
}
  • Вопрос задан
  • 443 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Треугольник лежит на пересечении кругов" означает, что все точки треугольника принадлежат пересечению кругов, то есть одновременно принадлежат обоим кругам.
Поскольку пересечение кругов выпуклая фигура, а стороны треугольника - отрезки прямых, то достаточно убедиться, что все три вершины одновременно принадлежат обоим кругам.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
У треугольника три угла, так?
И нужно, чтобы каждый из углов лежал внутри обоих кругов.
Вот и проверяйте каждую из вершин на нахождение в обоих кругах.

А у вас сейчас проверяется только одна точка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы