|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.03.2013, 21:49 | #11 |
Пользователь
Регистрация: 11.03.2013
Сообщений: 10
|
Помогите с некоторими моментами в задаче.
1. Нужно както определьть как пускать лучи или Через промежок dt или через уравнения примой. 2. Нужно определять где луч входит и виходит. (С шарика). 3. После того как луч упал на шарик часть его заломилася и отбилася и как потом ети два луча в цикл прописать ???? ПС. Буду благодарен |
14.03.2013, 22:18 | #12 |
Старожил
Регистрация: 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. |
14.03.2013, 22:21 | #13 | ||||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
14.03.2013, 22:34 | #14 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
А вот насчет того, чтобы соптимизировать - при преломлении в шарике луч будет входить в шарик и выходить из него под одним и тем же углом к поверхности шарика. И тот же угол (а вместе с ним и коэффициент отражения) сохранится и при каждом последующем отражении луча от внешней границы шарика. |
|
15.03.2013, 00:43 | #15 |
Пользователь
Регистрация: 11.03.2013
Сообщений: 10
|
Здесья чтото неподумал обо всей сложности задачи и потому так сказал ...
|
15.03.2013, 10:53 | #16 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
|
21.03.2013, 22:08 | #17 |
Пользователь
Регистрация: 11.03.2013
Сообщений: 10
|
Помогите. Я уже сделал лучи которие прохадят через усе кульки и заломившись виходят. А как сделать лучи которие отбиваютса незнаю. тоисть незнаю как их записать в один цикл. Мне извесно когда луч входит в шарик точку вхождения и угол вхождения а как расчитать отбившися луч незнаю помогите буду очень рад.
|
21.03.2013, 22:33 | #18 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Еще раз: лучи не заломляются, а преломляются и не отбиваются, а отражаются.
Еще раз повторяю: луч на границе двух сред разделяется на два - преломленный и отраженный. разумно их оба запихивать в стек или очередь в конце цикла, а в начале следующего прохода - доставать по одному. В принципе, можно запихивать только один из них, а доставать - сразу после того, как один из отслеживаемых лучей вышел из сосуда или исчез за малостью. И еще раз повторяю: угол падения равен углу отражения. Все это я уже писал. Постарайтесь, все-таки, прежде чем писать в тему, сначала внимательно прочитать, что Вам уже ответили. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Геометрическая задача (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 |