Даны координаты центров и радиусы 2-ух окружностей. Найти координаты точек пересечения. Pascal, C, или четкий алгоритм.
5-9 класс
|
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.
посмотри вот тут есть алгоритм на паскале и кое какое обьяснение
http://www.kompoblog.ru/?p=23
Другие вопросы из категории
Название приложения
Строка меню
Кнопка закрыть
Панель инструментов
Палитра
Панель стандартная
Панель форматирование
Рабочая область
Кнопка свернуть
Строка состояния
Текстовый курсор
Полосы прокрутки.
Дан массив натуральных чисел, состоящий из n элементов. Найти сумму элементов массива, кратных данному числу К.
(паскаль)
символов. какое количество информации содержится на каждом носителе? какое количество информациии заключено во всем своде законов*
Читайте также
Составьте программу рисования 12 окружностей радиусом 25, с координатами центров окружностей: (25,100), (75,100),(125,100), (175,100), (575,100).
Номер 2
Примеры входных данных: координаты 1-ой точки>> 1,2..
координаты 2-ой точки>> 3,4..
Примеры выходных данных: 1-ая точка ближе...Помогите пожалуйста.
объемы ящиков . Вывести на экран больший объем. Составить программу в паскале.
Известны радиусы и координаты центров двух окружностей таких , что одна окружность не содержит внутри другой . Определить пересекаются ли эти окружности (расстояние между центрами должно быть меньше суммы радиусов). Определит площадь большей окружности. Составить программу в паскале
№20. Даны величины углов треугольника. Определить является ли это треугольник:
а) остроугольным
б) тупоугольным
в) прямоугольным
г) равносторонним
д) равнобедренным.
№21. Определить, какая из двух точек - M1(x1,y1) или M2(x2,y2) - расположена ближе к началу координат. Вывести на экран дисплея координаты этой точки.
№22. Даны действительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a,b,c в прямоугольное отверстие со сторонами x и y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.
№23. Написать программу, которая печатает True или False в зависимости от того, выполняются или нет заданные условия:
а) квадрат заданного трехзначного числа равен кубу суммы цифр этого числа;
б) сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр;
в) среди цифр заданного трехзначного числа есть одинаковые;
г) среди первых трех цифр из дробной части заданного положительного вещественного числа есть цифра 0.
заданными координатами в полукруг радиусом R, расположенный в I и IV
четверти. (Уравнение окружности R2=x2+y2.). Помогите пожалуйста на С++ программу написать.