Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Проверить какие круги влезли в круг, а какие нет

04.09.2016, 13:05. Показов 2292. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть круг с центром в a = 145, b = 145 радиус R = 43,

радиусы малых кругов 5.

Координаты центра нижнего левого круга с индексом 0, 0 (100,100)

Координаты верхнего правого круга с индексом 9, 9 (190,190)

Надо проверить какие круги влезли в круг а какие нет - C++

Предложите пожалуйста вариант решения , но не этот . желательно со своими мыслями.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
using namespace std;
 
int main() 
{
    int R = 43, r = 5, a = 145, b = 145;
    
    for (int i=0, y = 100;i<10;i++,y+=2*r)
    {
        for (int j=0,x = 100;j<10;j++,x+=2*r)
        {
            if (pow((x - a),2) + pow((y - b),2) <= pow((R - r),2)) 
            
            cout<<"Круг ("<<i<<","<<j<<") влез."<<endl;
            
            else cout<<"Круг ("<<i<<","<<j<<") не влез !!!"<<endl;
        }
    }
    return 0;
}
Миниатюры
Проверить какие круги влезли в круг, а какие нет  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.09.2016, 13:05
Ответы с готовыми решениями:

Надо проверить какие квадраты влезли в круг а какие нет
Есть круг с центром в a = 150, b = 150 радиус R*R = 1800, стороны квадратов 10. Координаты нижнего левого угла квадрата с...

Логика. Определите какие из следующих предложений являются высказываниями, а какие нет
a) Ты играешь в хоккей? b) Обязательно займись каким либо видом спорта. c) Все спортсмены - очень здоровые люди. d) Спортом...

Какие операторы являются правильными, какие − нет и почему?
Дано описание переменных: var x,y:^integer; r^:^char; Какие операторы являются правильными, какие...

23
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 13:16
Цитата Сообщение от RAFA91 Посмотреть сообщение
но не этот
Код полный шлак.
Цитата Сообщение от RAFA91 Посмотреть сообщение
Надо проверить какие круги влезли в круг а какие нет - C++
Формула на коленке:
R>=Rx && R>=D && (R - D) >= Rx, где
R - радиус большой окружности,
Rx - радиус малой окружности,
D - расстояние от центра большой окружности до центра малой.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 13:29  [ТС]
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
R>=Rx && R>=D && (R - D) >= Rx, где
вот это точно щлак . подождем еще варианты
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 13:46
Цитата Сообщение от RAFA91 Посмотреть сообщение
вот это точно щлак
Это общая формула, дядя, а не код или призыв к действию.

Добавлено через 15 минут
RAFA91, для Вас разжую.
R>=Rx - у Вас это всегда истино, т.к. радиусы всех окружностей жестко заданы.
Значит это нам ни к чему. Идем далее.
R>=D - для Вашего случая это значит отсеивание всех лишних окружностей, и значит нужно только проверить прямоугольник, в который вписана окружность, даже можно не D, а (D-Rx), это может отсеить еще несколько окружностей.
(R - D) >= Rx - ну и дальше проверяем уже нужные окружности, другие мы быстренько отсеяли, сразу всем скопом.
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
04.09.2016, 13:46
C++
1
2
3
4
5
6
7
8
9
10
    int R = 43, r = 5, a = 145, b = 145;
    int l2=(R-r)*(R-r);
    for(int j=0, x=100; x<=190; x+=10,j++)
    for(int i=0, y=100; y<=190; y+=10,i++)
    {
        int dx=a-x;
        int dy=b-y;
        if(dx*dx+dy*dy<=l2) cout<<"Круг ("<<i<<","<<j<<") влез."<<endl;
        else cout<<"Круг ("<<i<<","<<j<<") не влез !!!"<<endl;
    }
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 13:56  [ТС]
HelicopterK52 мое решение фурычет а ваше не очень. проверьте на практике сперва

Цитата Сообщение от MansMI Посмотреть сообщение
if(dx*dx+dy*dy<=l2)

тут не сколько программирование сколько геометрия. ну нет же.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 15:04
Цитата Сообщение от RAFA91 Посмотреть сообщение
мое решение фурычет
Именно фурычит, а не работает
Цитата Сообщение от RAFA91 Посмотреть сообщение
проверьте на практике сперва
Эт Вы проверьте, хотя, если писать код как в первом посте,
то вообще ничего работать не будет.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 15:06  [ТС]
проверил и что

http://ideone.com/DsofiL

а у вас что ?
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 15:12
Цитата Сообщение от RAFA91 Посмотреть сообщение
проверил и что
Не то проверил. Думаю, еще что-то подсказывать нет смысла - как об стенку. Покедова.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 15:49  [ТС]
вы б хоть условие прочитали для начала.
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.09.2016, 15:55
Надо проверить какие квадраты влезли в круг а какие нет

в соседней теме я вам отвечал, эта задача еще легче квадратов, в этом случае не нужно высчитывать растояние от цетра квадрата до угла, потому что все круги имеют радиус, так что задача сводится к тому чтобы посчитать растояние от центра большой окружности к любой другой, потом к этому числу прибавить радиус и проверить если растояние меньше радиуса большой окружности то мы входим и все, тут погрешности которая возникает с квадратами нет.
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
04.09.2016, 16:00
Цитата Сообщение от obivan Посмотреть сообщение
тут погрешности которая возникает с квадратами нет.
В той теме лень было отвечать. Но, раз уж, зашла речь про погрешность... Можно и там и тут считать в целых числах и сравнивать с квадратом радиуса. Погрешности не будет.
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.09.2016, 16:05
avgoor, ну там она не только из за плавающих возникает, в целом там может быть ситуация, когда внешная окружность квадрата может быть правильного радиуса но сам ее круг может выйти за пределы другого, ну а по поводу флоатов и тд., поймите я же тоже код не тестил ) ТС дает огрызок я чисто с точки геометрии, вообще тогда взять какой нибудь эпсилон и сравнивать модуль разности

Добавлено через 1 минуту
ну или да если не нужна точность флоатов, а по коду ТС`a он их там и не юзал вроде то можно и целыми
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
04.09.2016, 16:08
Цитата Сообщение от obivan Посмотреть сообщение
ну там она не только из за плавающих возникает
Из за чего же еще она может возникнуть? Теорема Пифагора не верна, что ли? Если есть целое число его квадрат тоже целый. И сумма квадратов целых чисел - целая. Если не извлекать корень - нужно сравнить два целых числа. Без какой бы то ни было погрешности.
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.09.2016, 16:16
Цитата Сообщение от avgoor Посмотреть сообщение
Из за чего же еще она может возникнуть
я имел ввиду что то вроде этого, может я не прав и такой ситуации не возникнет, просто еще раз повторюсь а не тестил этот алгоритм Не берусь утверждать что предложенный мной вариант будет тут работать или не работать, потестить надо
Миниатюры
Проверить какие круги влезли в круг, а какие нет  
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 16:28  [ТС]
Цитата Сообщение от obivan Посмотреть сообщение
в соседней теме я вам отвечал,

это уже совсем другое . не нужно тут думать языком программирования. тут надо вспомнить школу.

может хоть это кого то заставит подумать.
Миниатюры
Проверить какие круги влезли в круг, а какие нет  
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.09.2016, 16:30
RAFA91, в каком месте это другое ? в той теме я по сути предлагал вам рассматривать квадрат как круг, а здесь просто круг, извините но создается впечатление что вы сами то не понимаете того что вам советуют
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
04.09.2016, 16:30  [ТС]
вверху над вашим последним сообщением картинка. подумайте.

красная линия это фиктивный круг проверок
0
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.09.2016, 16:49
да и в каком покажите мне месте я думал языком программирования я просто вам наглядно показал пример формулы я с таким же успехом мог его записать математически

Добавлено через 3 минуты
Цитата Сообщение от RAFA91 Посмотреть сообщение
вверху над вашим последним сообщением картинка. подумайте.
????????????????????????????????? вы о чем о том что круг там торчит, я помойму вам специально написал в случае с полноценным кругом той ситуации которая возникает с квадратом НЕТ, и именно этой погрешности не будет, может быть то о чем писал avgoor, и он сказал как это решить

Добавлено через 2 минуты
Цитата Сообщение от RAFA91 Посмотреть сообщение
красная линия это фиктивный круг проверок
мне интересно что вы тем рисунком пытетесь сказать ?

Добавлено через 3 минуты
вы вообще вникли в суть того что я вам предложил
допустим круг с которым нам нужно проверить входит ли он в него или нет красный, т.е если что то полностью в красном то входит, предположим что радиус красного круга равен 5, а теперь расписую вам мой алгортим с рисунка видно что зеленый круг лежит на границе т.е растояние от центра равно 5 иииииииииии мы придавляем радиус зеленого круга он условно с рисунка равен 2, 5 + 2 = 7 , 7 > 5 -> зеленый за кругом, проверим черный круг их центры совпадают, но радиус черного круга больше (условно 8) 0 + 8 = 8 -> 8 > 5 черный тоже не входит , а теперь скажите мне о чем вы предлагаете тут подумать ?
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
04.09.2016, 16:49
Цитата Сообщение от RAFA91 Посмотреть сообщение
может хоть это кого то заставит подумать.
Ага, подумай, Вам уже писали об этом "круге". Непробиваемый.
Цитата Сообщение от obivan Посмотреть сообщение
создается впечатление что вы сами то не понимаете того что вам советуют
Да он и не читает. Ну или не доходит.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.09.2016, 16:49
Помогаю со студенческими работами здесь

Какие строки имеют искомое число,а какие нет
Нужно выполнить обработку элементов прямоугольной матрицы А,имеющей N строк и М столбцов.все элементы имеют целый тип.дано целое число...

Даны прямые, определить, какие параллельные, а какие нет
Даны уравнения прямых а1х+b1y=c1, a2x+b12y=c2, a3x+b3y=c3. Выяснить, какие из этих прямых параллельны, а какие - нет Помогите пожалуйста...

Узнать, какие разряды включены в число, а какие нет
Помогите разобраться.Это все надо на Си. Значение int 4 байта т.е 32 бита.Пусть есть число 10(хотя в проге число зарание не известно!!)...

Какие-то картинки считываются с сайта, какие-то нет
почему-то одни картинки загружаются с сайта, другие такие же нет по данному простому коду: System.Net.WebRequest...

Какие из формул задают множества, а какие нет?
Какие из формул задают множества,а какие нет? А={{а,в},{а,в}},В={α,а,β,Λ},С={I',I'\I'},I')={y|1-y^2&gt;0}


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru