Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Craz_49
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 3
#1

Модель перекрестка - C++

14.07.2011, 11:25. Просмотров 1999. Ответов 6
Метки нет (Все метки)

Приветствую.
Небольшая предыстория: я не программист, а будущий педагог, но так сложилось, что в рамках большой исследовательской работы возникла необходимость в создании компьютерной модели перекрестка.
Задача: необходимо смоделировать регулируемый перекресток, т.е. на полосы выставляются машинки (в соответствии с нормальным законом), едут до светофора, стоят там, если нужно, движутся дальше, иногда поворачивают.
Просто нарисовать движущиеся точки смогу даже я, с моими минимальными познаниями в С, но проблема в другом. Каждый автомобильчик должен являться отельным объектом с рядом параметров (координата, время нахождения на полосе, может быть что-нибудь еще), следовательно, должен вестись учет всех автомобилей на дороге.
Чтение литературы наводит на мысль, что такие понятия как "очередь", "стек", "двусвязный список" напрямую относятся к этой задаче.
Я не прошу писать за меня код, я прошу помочь понять как вышеописанное можно реализовать, с помощью каких средств и методов, представить структуру программы, т.к. неспециалисту сложно разобраться с чего начать, в каком направлении двигаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2011, 11:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Модель перекрестка (C++):

Программа на C++, которая переводит цветовую модель RGB в модель HSV - C++
Всем привет! Я - начинающий программист. Мне нужна ваша помощь. Мне нужно сделать программу на C++, которая переводит цветовую модель RGB в...

модель атома - C++
написать программу ,которая осуществит движение електронов вокруг атома.

Физическая модель - C++
Пробовал создать физическую модель нецентрального соударения 2х шаров - не получилось. Помогите решить, учитывая, что у каждого шара...

Модель лифта - C++
Доброго времени суток! Задача - реализовать в программе команды по управлению лифтом, учитывая практические ограничения ( лифт должен...

Спичечная модель - C++
Спичечная модель Профессор Самоделкин решил изготовить объемную модель кубиков из спичек, используя спички для рёбер кубиков....

Модель полета - C++
Добрый день. Мне нужно смоделировать полета самолета по горизонтальной восьмерке, нужно вывести крен, тангаж и приборную скорость, а также...

6
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.07.2011, 12:41 #2
Перекрёсток - это типичная задача, для людей которым нужно выучить работу многопоточного приложения.
Могу посоветовать сделать следующее:
1) описать класс автомобиль\пешеход\движущаяся_точка, в нем хранить текущие координаты объекта и описывать его намерения (поехать прямо, повернуть, врезаться и т.п.)
2) Светофор можно реализовать с помощью 8-и очередей (не обязательно это единственно верный вариант).
3) Каждый объект который находится на светофоре, добавлять в одну из очередей и запускать отрисовку объекта в отдельном потоке.
4) Для разрешения проблемы, что объекты наезжают друг на друга на перекрёстке - нужно использовать мьютексы, которые будут блокироваться и запрещать некоторым очередям опустошаться\наполняться.

В общем как-то так. Надеюсь помог и не запутал ещё больше.
1
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,494
14.07.2011, 22:06 #3
Цитата Сообщение от Craz_49 Посмотреть сообщение
Просто нарисовать движущиеся точки смогу даже я, с моими минимальными познаниями в С, но проблема в другом.
как это?
0
Craz_49
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 3
15.07.2011, 08:39  [ТС] #4
Цитата Сообщение от l_a_m Посмотреть сообщение
типичная задача, для людей которым нужно выучить работу многопоточного приложения.
- звучит пугающе на самом деле.

Цитата Сообщение от kravam Посмотреть сообщение
как это?
Если мне не изменяет память, то нарисовать простую фигуру и заставить ее перемещаться с использованием OpenGL не слишком сложно.


Цитата Сообщение от l_a_m Посмотреть сообщение
2) Светофор можно реализовать с помощью 8-и очередей
Вот этот момент не совсем понятен, разве не 4 очереди (по одной на каждую полосу)?
0
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
15.07.2011, 09:51 #5
Цитата Сообщение от Craz_49 Посмотреть сообщение
- звучит пугающе на самом деле.
Да ничего там страшного нет, тем более что тема стара как мир я больше чем уверен, если поискать на Вики, то найдёте уже готовое решение.

Цитата Сообщение от Craz_49 Посмотреть сообщение
Вот этот момент не совсем понятен, разве не 4 очереди (по одной на каждую полосу)?
не знаю, я бы сделал с помощью 8и, так проще ИМХО (очередь 1,2 - верхняя часть перекрёстка, движение 1) вверх (левая полоса), 2)вниз (правая полоса); очередь 3,4 - нижняя часть перекрёстка, и т.д.)
0
Craz_49
0 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 3
24.07.2011, 12:20  [ТС] #6
Возникли вопросы:
1) Каким образом можно организовать выполнение функции с периодичностью в n секунд (например переключение светофора каждые 10 секунд)?
2) Как создавать объекты с уникальными именами (car1, car2, ...), не вручную конечно же?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2011, 12:33 #7
Цитата Сообщение от Craz_49 Посмотреть сообщение
1) Каким образом можно организовать выполнение функции с периодичностью в n секунд (например переключение светофора каждые 10 секунд)?
использовать таймер

Цитата Сообщение от Craz_49 Посмотреть сообщение
2) Как создавать объекты с уникальными именами (car1, car2, ...), не вручную конечно же?
либо вручную, либо массив
0
24.07.2011, 12:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2011, 12:33
Привет! Вот еще темы с ответами:

C++. Виртуальная модель - C++
Заранее извиняюсь.Если подобные темы уже возникали.Но вопрос в следующем.Никто не мог бы дать ссылку,примеры,по работе с анимацией в С++.? ...

Модель стека - C++
Не знаю где создать эту тему, поэтому создал тут: Есть вот такое задание: Модель стека 1. Исходные данные: стек списковой...

Модель ООП - C++
Помоги сделать, пожалуйста работу! Возможно у кого нибудь есть примеры работы с классами! БУду рада всему, что есть! У меня тема "Клуб...

Модель «Сахарный мир» - C++
Модель «Сахарный мир» Модель «Сахарный мир» описывается следующими правилами: 1) Пространство является двумерной сеткой. 2) В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru