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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2013, 21:49   #11
Uses_crt
Пользователь
 
Регистрация: 11.03.2013
Сообщений: 10
Радость

Помогите с некоторими моментами в задаче.

1. Нужно както определьть как пускать лучи или Через промежок dt или через уравнения примой.
2. Нужно определять где луч входит и виходит. (С шарика).
3. После того как луч упал на шарик часть его заломилася и отбилася и как потом ети два луча в цикл прописать ????



ПС. Буду благодарен
Uses_crt вне форума Ответить с цитированием
Старый 14.03.2013, 22:18   #12
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Если хотите, чтобы Ваша программа заканчивала работу за вменяемое время - только через уравнение прямой.
2. А зачем Вам это? Вам нужно только расстояние от луча до центра шарика.
3. Перечитайте еще раз мой пост с алгоритмом.
Общая структура циклов примерно следующая:
- внешний цикл (for) по лучам - мы ведь будем анализировать не один луч, а несколько.
- внутри внешнего цикла инициализируем очередь лучом, входящим в сосуд.
- внутренний цикл (repeat until) в котором:
1. Добываем очередной луч из очереди.
2. Ищем его пересечение с каплей жира, если нашли - 4, не нашли - 3.
3. Каплю не нашли - луч выходит из сосуда - запоминаем позицию выхода. Далее - на следующий проход цикла.
4. Расщепляем луч на 2 - преломленный и отраженный.
5. Проверяем интенсивность каждого из двух лучей, если ниже порога - обрываем его, подсчитывая суммарную интенсивность таких лучей. Если выше порога - записываем в очередь.

PS. Да, я тут подумал: возможно, лучше организовать не очередь, а стек.

Последний раз редактировалось s-andriano; 14.03.2013 в 22:21.
s-andriano вне форума Ответить с цитированием
Старый 14.03.2013, 22:21   #13
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Как на меня ето интересная задача било хоть бы больше свободного времени помог бы сделать а так некогда.
По-прежнему нет свободного времени?..

Цитата:
1. Нужно както определьть как пускать лучи или Через промежок dt или через уравнения примой.
В этой задаче есть время? По-моему нет. Смысл вопроса неясен.
Цитата:
2. Нужно определять где луч входит и виходит. (С шарика).
Нужно. Как уже сказано, это надо взять ручку, бумагу, пару формул из учебника по оптике и учебника по линейной алгебре и долго и муторно считать. Ничего сложного, простое упражнение на усидчивость - два преломления, в каждом случае посчитать изменение углов, добавить условие прохождения через точку преломления, получить новое уравнение прямой.
Цитата:
3. После того как луч упал на шарик часть его заломилася и отбилася и как потом ети два луча в цикл прописать ????
В предложенной s-andriano модели преломившийся луч выпадает из очереди и два новых луча (со своими интенсивностями!) попадают в очередь.
Abstraction вне форума Ответить с цитированием
Старый 14.03.2013, 22:34   #14
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Нужно. Как уже сказано, это надо взять ручку, бумагу, пару формул из учебника по оптике и учебника по линейной алгебре и долго и муторно считать. Ничего сложного, простое упражнение на усидчивость - два преломления, в каждом случае посчитать изменение углов, добавить условие прохождения через точку преломления, получить новое уравнение прямой.
Ну, много тут считать не нужно, задача элементарная.
А вот насчет того, чтобы соптимизировать - при преломлении в шарике луч будет входить в шарик и выходить из него под одним и тем же углом к поверхности шарика. И тот же угол (а вместе с ним и коэффициент отражения) сохранится и при каждом последующем отражении луча от внешней границы шарика.
s-andriano вне форума Ответить с цитированием
Старый 15.03.2013, 00:43   #15
Uses_crt
Пользователь
 
Регистрация: 11.03.2013
Сообщений: 10
Радость

Цитата:
Сообщение от Uses_crt Посмотреть сообщение
Как на меня ето интересная задача било хоть бы больше свободного времени помог бы сделать а так некогда. Я так думаю что должны помочь етому человеку написать ету прогу. Если он здесь написал значит ему очень она нужна.
Здесья чтото неподумал обо всей сложности задачи и потому так сказал ...
Uses_crt вне форума Ответить с цитированием
Старый 15.03.2013, 10:53   #16
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Uses_crt Посмотреть сообщение
Здесья чтото неподумал обо всей сложности задачи и потому так сказал ...
Значит, Вы отвечаете в тему раньше, чем ее прочитать.
О том, какие в этой задаче сложности, я уже писал в третьем пункте сообщения №4.
s-andriano вне форума Ответить с цитированием
Старый 21.03.2013, 22:08   #17
Uses_crt
Пользователь
 
Регистрация: 11.03.2013
Сообщений: 10
По умолчанию

Помогите. Я уже сделал лучи которие прохадят через усе кульки и заломившись виходят. А как сделать лучи которие отбиваютса незнаю. тоисть незнаю как их записать в один цикл. Мне извесно когда луч входит в шарик точку вхождения и угол вхождения а как расчитать отбившися луч незнаю помогите буду очень рад.
Uses_crt вне форума Ответить с цитированием
Старый 21.03.2013, 22:33   #18
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

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

Все это я уже писал.
Постарайтесь, все-таки, прежде чем писать в тему, сначала внимательно прочитать, что Вам уже ответили.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Геометрическая задача (C++) Day Stiff Фриланс 4 12.07.2012 12:50
геометрическая задача Nurik1 Паскаль, Turbo Pascal, PascalABC.NET 1 05.12.2011 11:34
геометрическая задача Nurik1 Паскаль, Turbo Pascal, PascalABC.NET 3 20.11.2011 12:07
Геометрическая задача Liza Dalbek Помощь студентам 2 22.12.2010 19:48
Геометрическая задача Liza Dalbek Общие вопросы C/C++ 0 22.12.2010 14:18