Форум программистов, компьютерный форум CyberForum.ru

Проверить, пересекаются ли две окружности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для вывода знаков зодиака http://www.cyberforum.ru/cpp-beginners/thread1492264.html
16.Известно, что астрологи делят год на 12 периодов и каждому из них ставят в соответствие один из знаков Зодиака. Написать программу, которая в зависимости от даты рождения печатает название соответствующего знака Зодиака.
C++ Как сделать из двух чисел третье, уникальное для любой комбинации первых двух? Hi :) Есть два числа, допустим: int a и int b, как можно их "сопряч", то есть что - то с ними сделать, что бы получить третье число, уникальное для любого набора этих А и B. Причём порядок следования A и B так же важен. То есть есть два числа: 1. Первое число (допустим типа int) 2. Второе число (допустим типа int) Нужно получить любой третье число, допустим int c, которое бы не... http://www.cyberforum.ru/cpp-beginners/thread1492253.html
C++ Создать окно с кнопкой, закрывающей это окно
Создайте новый оконный проект в ОС Microsoft Windows 7 или Linux. Разместите посередине окна кнопку с надписью "Close". После нажатия кнопки окно должен закрываться. Работа программы должно завершаться. Кнопку создайте программно (без использования Qt Designer).
Массив, индекс как уникальный ID C++
Добрый день. Пытаюсь сделать список, который хранит в себе список всех обьектов. У этого списка есть поле - ID. По идеи оно должно быть уникальным. Но вот вопрос. При создании массива, стоит ли использовать индекс, как уникальный ID? Class #include <string> #include <thread> #include <chrono> #include "entity.h"
C++ Настройка Clion + OpenCV http://www.cyberforum.ru/cpp-beginners/thread1492181.html
Уважаемые, форумчане...беда!) Установил свеженькую среду Clione под виндой и теперь никак не могу разобраться как грамотно подключить OpenCV. Скачал exe установщик. Он все распаковал и выглядит это примерно так Полагая что готовые сборки мне не подойдут решил, что скорее всего необходимо все собирать с помощью CMake
C++ Важность очередности при подключении библиотеки GL/glut.h Всем привет. Пытаюсь вывести в заголовок угол поворота фигуры а он выдает вот такую ошибку: 1>------ Построение начато: проект: рисуем, Конфигурация: Debug Win32 ------ 1> рисунок.cpp 1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdlib.h(360): error C2381: exit: переопределение; __declspec(noreturn) отличается 1> c:\program files (x86)\microsoft visual... подробнее

Показать сообщение отдельно
Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 251

Проверить, пересекаются ли две окружности - C++

03.07.2015, 11:19. Просмотров 1275. Ответов 8
Метки (Все метки)

Добрый день, не получается решить данную задачу:

На плоскости даны две окружности. Требуется проверить, пересекаются ли они.

Входные данные

Входной файл INPUT.TXT состоит из двух строк. На каждой строке записана информация об одной окружности – координаты ее центра x и y (целые числа, по модулю не превосходящие 5000) и радиус (целое число 1 ≤ r ≤ 1000).

Выходные данные

В выходной файл OUTPUT.TXT выведите «YES», если окружности пересекаются, и «NO» в противном случае.

Вот мой способ решения, он основан на том, чтобы для начала вычислить какая из окружностей "первая", а какая "вторая", а после этого проверить пересечение. Интересно было бы увидеть также ваши решения.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;
 
void main()
{
    // Объявление переменных, простых и правдивых (true)
    int x1, y1, x2, y2, r1, r2;
    int tx1, tx2, ty1, ty2, tr1, tr2;
    cin >> x1 >> y1 >> r1;
    cin >> x2 >> y2 >> r2;
    // Расчет, какая из окружностей 1, а какая 2.
 
    // Не получается
 
 
   // Расчёт, пересекаются ли окружности.
    if (((ty2 - tr2) > (ty1 + tr1)) || ((tx2 - tr2) > (tx1 + tr1)) || (((ty2 - tr2) == (ty1 + tr1)) && ((tx2 - tr2) == (tx1 + tr1))))
    {   
        cout << "NO" << endl;
    }
    else if ((tx1 != tx2) && ((ty2 - tr2) >= (ty1 + tr1)))
    {
        cout << "NO" << endl;
    }
    else
        cout << "YES" << endl;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru