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

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

04.09.2016, 13:05. Показов 2178. Ответов 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,560
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru