Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2011, 00:31   #1
Heming
Форумчанин
 
Аватар для Heming
 
Регистрация: 06.07.2010
Сообщений: 105
Вопрос Геометрическая задача в паскале

Помогите додумать!
Условие:
Можнои ли кирпич со сторонами a,b,c втиснуть в прямоугольное отверстие сторонами e,d. Если нет, вывести сообщение. Если да, то как именнно.

На первый примитивный взгляд получаем след. варианты:

Боковой впих:
1)b<=e;c<=d
2)b<=e;a<=d
Фронтальный впих:
1)a<=e;c<=d;
2)c<=e;a<=d
Высокий впих(т.е. поставить кирпич на меньший прямоугольник, как бы поставить на ногу):
1)с<=e;b<=d
2)a<=e;b<=d

Диагональный впих(впихивать по диагонали отверстия)
1)(b^2+c^2)<(d^2+e^2); (вот как тут учесть ширину кирпича ведь ушки прямоугольника отверстия могут мешать некоторому диапозону впихов)
2)(a^2+b^2)<(d^2+e^2);

Если у кого-то есть рациональные идейки или красивые варианты реализации, мб вы сталкивались с такой задачей, буду очень благодарен за совет, ибо мне кажется есть еще варианты, но мне хотя бы понять как учесть последний. Извените, если где написал неточность, потому что уже больше 2 суток не спал, а срочно нужно закрыть паскаль.

Вроде бы задача не сложная, но мне настойчиво обещали тут подводные камни, вот решил узнать у профи какие они тут. Заранее благодарю.
Carpe Diem
Heming вне форума Ответить с цитированием
Старый 06.09.2011, 07:11   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию



Лично у меня такое получилось. Решив систему уранений, найдём b2 и a1. Их сумма даст минимальную высоту при заданной ширине W. Если высота отверстия меньше минимальной, значит не пройдёт.

Ну и там несколько вариантов подбора, имхо, их проще все перебрать, не так уж их и много. Ну или придумать эвристику.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 06.09.2011 в 07:17.
veniside вне форума Ответить с цитированием
Старый 08.09.2011, 10:31   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Лично у меня такое получилось. Решив систему уранений, найдём b2 и a1. Их сумма даст минимальную высоту при заданной ширине W. Если высота отверстия меньше минимальной, значит не пройдёт.
veniside, зачем это? Чего ты человека с толку сбиваешь?

Не нужно никаких "диагональных впихов" (а по-нашему - кривых). Вам что - ни разу не приходилось проносить шкаф в дверь?.. Вы правда что ли его для этого наклоняете?.. Но ведь при наклоне обе проекции увеличиваются!

Все очень просто, никаких подводных камней тут нет. Сделать нужно следующее:
1. Найти максимальный размер кирпича и "отбросить" его. С этого момента задача из пространственной превращается в плоскую (можно ли прямоугольник вложить в другой прямоугольник).
2. Упорядочить стороны кирпича и отверстия, то есть чтоб a<=b и e<=d.
3. Если выполняются ОБА условия: a<=e и b<=d - то ДА, можно протащить. Если хоть одно не выполняется - НЕТ, нельзя.

Вот и все )).

Где-то я уже решал подобную задачу.. сейчас поищу..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 08.09.2011, 11:15   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> сейчас поищу

не трудитесь, лучше помедитируйте 5 минут над картинкой:

"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.09.2011, 11:23   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
не трудитесь, лучше помедитируйте 5 минут над картинкой:
хватило 0.5 сек ))
мои глубочайшие извинения и уважение!

+ veniside и + топикстартеру
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 08.09.2011, 11:34   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

шкафы, они разные бывают. И двери тоже )

У меня есть ещё смутные подозрения, что кирпич можно наклонять и в третьей плоскости, и протаскивать не только вглубь (по оси Z), но и со смещением по осям Х и Y. Тогда его проекция на отверстие не будет прямоугольной. Но хочется надеяться, что это только ухудшит дело, хотя доказать я это не берусь.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 08.09.2011, 11:36   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

veniside, извините, а ведь TinMan был прав со своим изначальным замечанием..

Цитата:
Можнои ли кирпич со сторонами a,b,c втиснуть в прямоугольное отверстие сторонами e,d.
не нужно, чтобы объект поместился в нише,
нужно через "дырку в заборе" этот кирпич просунуть...


Добавлено
я уже сам понял, что я был неправ... сорри!

Последний раз редактировалось Serge_Bliznykov; 08.09.2011 в 11:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.09.2011, 11:40   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Сергей, чорный квадрат на моей картинке — это и есть отверстие (дырка в заборе). Красное — это кирпич-анорексик, который просовывают в отверстие.
Считаем, что третье измерение у кирпича ещё больше (кирпич похож на длинный, узкий лист фанеры), так что мы его отбросили.
При чём тут ниша?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 08.09.2011 в 11:49.
veniside вне форума Ответить с цитированием
Старый 08.09.2011, 11:49   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

veniside, угу. согласен.
моё сообщение "провисело" на форуме всего пару минут... потом я понял свою ошибку и удалил свой пост (теперь пришлось восстановить...).
Однако Вы его успели прочитать и ответить на него.
Приношу свои извинения.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.09.2011, 11:54   #10
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Да ерунда, а задачка действительно прикольная. Я сам поломал голову, пока не понял, что треугольники (a, a1, a2) и (b, b1, b2) подобны. Без этого система уравнений была неполная.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. Геометрическая задача. student71 Помощь студентам 0 11.05.2011 01:28
Геометрическая задача Liza Dalbek Помощь студентам 2 22.12.2010 19:48
ГЕОМЕТРИЧЕСКАЯ ЗАДАЧА С++ kochet-kov Помощь студентам 8 22.12.2010 18:39
Геометрическая задача С++ bloo[d] Общие вопросы C/C++ 9 30.01.2008 18:27