Консультация № 174987
07.12.2009, 16:46
35.00 руб.
0 7 0
Здравствуйте,уважаемые эксперты!Помогите,пожалуйста,срочно с задачей по системному и приладному программированию.

Нужно написать задачу,отображающую поведение молекул идеального газа в закрытом сосуде:
а)Создаётся N потоков,каждый из которых занимается отрисовкой в заданном Canvas движущихся кругов(молекул).
б)Круги должны взаимодействовать со стенками сосуда(границами Canvas) и с друг другом.
в)Взаимодействие между потоками-отрисовщиками должно быть реализовано потоком-администратором,который постоянно через заданное малое время опрашивает потоки-отрисовщики об их текущем положении и в соответствии с ним "раздаёт" кванты перемещения.

OS:Windows xp, microsoft visual c++.Если можно с построчными комментариями.Заранее спасибо.

Обсуждение

Неизвестный
07.12.2009, 20:15
общий
РАИ:
Не очень понятно использование потоков в задании. Как раз обращение к ГДИ либо не рекомендуется из неосновного потока, либо запрещается. А обновление координат как раз берет на себя 1 менеджер. Получается, проще объекты молекул сделать полностью пассивными, а просчет выполнять в потоке-менеджере. Или в нескольких потоках - по количеству процессоров.
Еще хочу предостеречь о частой ошибке: если тупо сразу менять координаты, модель поплывет. Надо использовать модель "Тик-Так". Сначала проходим все молекулы и вычисляем их новые координаты или смещения, а затем во втором проходе обновляем координаты. И можно сразу рисовать.
Неизвестный
07.12.2009, 22:48
общий
Evgenijm,что такое ГДИ? А вообще я с вами согласна насчет пассивности обьектов молекул.Но я не знаю как всё это реализовать.Будьте добры мне помочь!
Неизвестный
10.12.2009, 02:04
общий
GDI - графическая библиотека Windows. К сожалению, до следующего четверга вряд ли смогу чем-то помочь. Да и на C++ такой проект делать очень муторно. Я бы мог костяк программы на C# набросать. Это потом легче будет перевести в С++. Но есть много вещей, которые решать вам. Самое сложное - как определять столкновение молекул и как пересчитывать их новые вектора скорости. Это уже геометрия и физика, причем в зависимости от требуемой реалистичности нужно обдумывать совершенно разные алгоритмы.
давно
Старший Модератор
17042
808
10.12.2009, 07:19
общий
Evgenijm:
Продляю срок жизни вопроса на 5 суток. Если берётесь за решение, сообщите. Но только не на C#, пожалуйста. Этот язык относится к другой рассылке.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
10.12.2009, 09:31
общий
Dr_Andrew:
В четверг (17го) я смогу только начать работать с вопросом. До этого мне надо готовиться к сложному и непрофильному экзамену, так что сильно отвлекаться не могу. Задание похоже на курсовую работу, так что за день его не сделаешь. Можно быстро набросать костяк программы, а потом уже неделями биться головой о стенуЯ могу постараться сделать костяк:
Модель, где заданные молекулы с параметрами летают по прямоугольной области зеркально отражаясь от стен. Но друг друга они игнорируют: это самая сложная здесь задача и зависит от физической модели. Модель работает в нескольких потоках и пересчет кадров не чаще заданного. В каждом кадре будет просчитываться сдвиг молекул в зависимости от вектора скорости. Отрисовку кадров не гарантирую, но постараюсь сделать.

Это не готовый ответ на задание, но необходимая база для начала. Если РАИ это подойдет, в четверг начну делать.
А пока советую ей заняться теорией по следующему вопросу: как меняются параметры молекул после столкновения.
давно
Старший Модератор
17042
808
10.12.2009, 10:17
общий
В случае необходимости продлить вопрос - обращайтесь. В данном случае, на мой взгляд, достаточно дать намётки (рабочий каркас приложения), который пользователь сможет развить самостоятельно.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
13.12.2009, 16:43
общий
Спасибо,что продлили срок!Я работаю над задачей,но была бы рада помощи Evgenijm .Через некоторое время выложу,что получилось.
Форма ответа