В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
toptop54
toptop54
18.08.2022 22:42 •  Информатика

Даны координаты центров и радиусы 2-ух окружностей. найти координаты точек пересечения. pascal, c, или четкий алгоритм.

Показать ответ
Ответ:
navaxa
navaxa
30.09.2020 19:33

var
x1, x2, y1, y2, r1, r2, d, b, x3, x4, y3,y4,x,y, h, a: real;

begin
readln(x1, y1, r1, x2, y2, r2);
d := sqrt(sqr(x1 - x2) + sqr(y1 - y2));
if (d > r1 + r2) or (d < abs(r1 - r2)) then writeln('No intersection point')
else if (x1 = x2) and (y1 = y2) then if (r1 = r2) then writeln('Infinity') else writeln('No intersection point')

else begin
b := (r2 * r2 - r1 * r1 + d * d) * 0.5 / d;
a := d - b;
h := sqrt(abs(r1 * r1 - sqr(b)));
x := x1 + (x2 - x1) * a / d;
y := y1 + (y2 - y1) * a / d;
X3 := X - (Y - Y2) * H / B;
Y3 := Y + (X - X2) * H / B;
X4 := X + (Y - Y2) * H / B;
Y4 := Y - (X - X2) * H / b;
writeln(x3, ' ', y3);
if(x3<>x4)or(y3<>y4) then
writeln(x4, ' ', y4);
end;
end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота