Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/103: Рейтинг темы: голосов - 103, средняя оценка - 4.91
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636

Как узнать пересекаются ли окружности

20.12.2019, 23:22. Показов 21872. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны координаты центров двух окружностей и их радиусы, нужно узнать:
1. совпадают ли?
2. не пересекаются?
3. пересекаться ли в двух точках?
4. имеют внутреннее касание?
5. имеют внешнее касание?

пункт 1 это просто если входные данные окружностей равны друг другу то они совпадают

далее, я зачем то нашел суму радиусов и расстояние между центрами.

Как мне проверить остальные 4 пункта?

Добавлено через 31 минуту
Что я намудрил с условием которое не знаю как решить, правильней будет сказать так:
1. Окружности не пересекаются
2. Окружности имеют одну точку соприкасновения
3. Окружности имеют 2 точки пересечения
4. Одна окружность внутри другой


Окружности пересекаются, если расстояние между центрами меньше либо равно сумме радиусов иначе окружности не пересекаются.
Как мне определить это точка соприкасновения или две точки пересечения?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2019, 23:22
Ответы с готовыми решениями:

Проверить, пересекаются ли окружности
Привет родные форумчане! Пожалуйста помогите решить буду особенно благодарен если напишите код с комментариями что как работает, заранее...

Проверить, пересекаются ли две окружности
Добрый день, не получается решить данную задачу: На плоскости даны две окружности. Требуется проверить, пересекаются ли они. ...

Определите, во скольких точках пересекаются окружности.
Помогите пожалуйста решить. Ничего не понимаю, а скоро экзамен(((( Буду очень благодарна... Заданы две окружности: с центром в точке...

8
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
21.12.2019, 11:46
Если расстояние равно сумме радиусов, то соприкосновение, если меньше - две точки пересечения.
Учитываете ли случай, когда одна окружность касается другой или пересекает изнутри?
1
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
21.12.2019, 12:40  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
когда одна окружность касается другой
Так это и есть соприкосновение, разве нет?
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если расстояние равно сумме радиусов, то соприкосновение, если меньше - две точки пересечения.
Спасибо большое

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
или пересекает изнутри?
Если вы имеете ввиду одна точка касания когда одна окружность в другой, то да хотелось бы учитывать и этот случай. Вот только какое для этого случая условие и как его записать чтобы оно не пересекалось с моим условием пересечения
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
else if(d <= (r1+r2) )
    {//circles intersect
        if(d == r1+r2){
            cout << "\nThe circles intersect externally and the intersection point is one\n";
        }
        if(d < r1+r2){
            cout << "\nThe circles intersect externally and there are two intersection points\n";
        }
    }
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.12.2019, 12:58
COKPOWEHEU, чуток не так. Тут нужно рассматривать как сумму, так и разность радиусов.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
21.12.2019, 13:10
Цитата Сообщение от Vlast001 Посмотреть сообщение
одна точка касания когда одна окружность в другой
abs(r1-r2) == d
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
21.12.2019, 13:13
В GeoGebra: Нарисуй прямую по двум точкам. Добавь ещё две точки напрямую. И две окружности, используя эти точки.



0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
21.12.2019, 13:20
Цитата Сообщение от Байт Посмотреть сообщение
COKPOWEHEU, чуток не так. Тут нужно рассматривать как сумму, так и разность радиусов.
Я рассматривал случай когда окружности снаружи друг от друга, а вариант "внутри" оставил ТСу. Отсюда и был вопрос "касаются ли или пересекаются изнутри".
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
21.12.2019, 13:21
r - меньший радиус
R -больший радиус
d - расстояние между центрами

d + r < R - окружность внутри другой
d + r = R - касаются
d <= R и d + r >R - пересекаются
d > R и r + R < D - пересекаются
d > R и r + R = D - касаются
иначе не пересекаются
0
31 / 15 / 7
Регистрация: 08.01.2019
Сообщений: 636
21.12.2019, 13:49  [ТС]
Цитата Сообщение от lemegeton Посмотреть сообщение
abs(r1-r2) == d
Это когда окружность внутри окружности и они они не имеют точки соприкосновения изнутри большей окружности

Добавлено через 25 минут
Цитата Сообщение от AlexVRud Посмотреть сообщение
d + r < R - окружность внутри другой
d + r = R - касаются
d <= R и d + r >R - пересекаются
d > R и r + R < D - пересекаются
d > R и r + R = D - касаются
Что-то тут вы вроде напутали(или я вас не совсем понял).

d<R+r две точки пересечения
d = r+R касание
d+r = R касание внутри большей окружности
d < R - r или d+r < R окружность внутри окружности и не имею точек соприкосновения
d > r+R окружности не имеют общих точек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2019, 13:49
Помогаю со студенческими работами здесь

Определить пересекаются ли две заданные окружности
Составить программу, определяющую: не пересекаются, касаются, или пересекаются две заданные окружности (для каждой окружности при вводе...

Определить в скольких точках пересекаются окружности
Заданы две окружности: с центром в точке О1(x0, y0) и радиусом R0 и с центром в точке О2(x1, y1) и радиусом R1. Определите, во скольких...

Определить, во скольких точках пересекаются две окружности
Заданы две окружности: с центром в точке О (x0, y0) и радиусом R0 и с центром в точке О (x1, y1) и радиусом R1. Определите, во скольких...

Пересекаются ли окружности с заданными радиусами и координатами центров
1.Даны две окружности радиусом R1 и R2 , координатами центров (X1 ,Y1 ) и (X2,Y2 ). Написать программу, определяющую, пересекаются ли...

Определить пересекаются ли окружности и найти среди них уединенные
Окружности задаются координатами X,Y их центров и радиусами R. Датчик случайных чисел вырабатывает характеристики N окружностей....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru