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

Компьютерная графика на VS C++ MFC. Срочно требуется помощь! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор ввода http://www.cyberforum.ru/cpp/thread23311.html
мне очень нужна нужна функция или совокупности нескольких, которые без всякого нажатия интер считывали бы нажатие клавиши и записывали бы значение в переменую, причем функция должна работать, не...
C++ Аналог packed record в C в С описать packed record, как в паскале. т.е. нужно чтобы: struct { byte var1; PDWORD var2; byte var3; } а; весила 6 байт. http://www.cyberforum.ru/cpp/thread22686.html
C++ Система Тестирования
помогите написать программу в C++ должна работать так... запускаем программу, появляется меню: 1) создание теста (ввод данных, запись на диск, считывание с диска) 2) тестирование (выбор теста...
C++ Как добавить библиотеку GLAUX.lib в Visual Studio
Привет! Нужно добавить библиотечку OpenGL, которая называется GLAUX, но не знаю как. Куда какие файлы добавить, где что написать чтоб функционировать начало. На новом компе написанный код не...
C++ Г.Шилдт. Теория и практика С++ http://www.cyberforum.ru/cpp/thread22301.html
Кто-нибудь дайте бесплатную ссылку на книгу: Г.Шилдт. Теория и практика С++. BHV-Санкт-Петербург. 416 стр Please, очень нужно!:help:
C++ Templates всем привет вот у меня тут 1 проблемка кароче выдает ошибку непоиму что я делаю неправилно template <class T> class Array { public: Array(int itsSize = DefaultSize); Array(const... подробнее

Показать сообщение отдельно
Accemt
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 4

Компьютерная графика на VS C++ MFC. Срочно требуется помощь! - C++

17.02.2009, 12:25. Просмотров 2090. Ответов 3
Метки (Все метки)

Привет всем.
Я с 3 курса факультета информационных технологий НГУ.
Хочу попросить помощи в решении задач по курсу комп. графики. Задачи решаются на Visual C++ в виде MFC приложений в студиях 2005-2008. Желательно 2005.
Тут нужен человек, который действительно хорошо разбирается в графике..
Есть требования по срокам сдачи заданий. Все эти требования - обязательные. Это самый крутой и сложный курс за всего годы обучения в магистратуре.
Кто может, прошу помочь. Конечно, небесплатно...
Пока только одна задача. Требуется решить до 2 марта до 14:00. Потом будут ещё. Поставлять задачи могу весь год.
Очень жду тех, кто может помочь бедному студенту. Ещё раз говорю, если потребуется финансовое вознаграждение, будет и оно. Главное, вовремя решить.

Все, кто может, пишите здесь или в аську 664507, либо e-mail: accemt@gmail.com
Опишу подробнее задачу, требования, что и как.

Вот краткая формулировка первой задачи(во вложениях иллюстрации к ней):

Построить MFC приложение, реализующее массив "живых" и "мертвых" ячеек-шестигранников и их жизнь по алгоритму Конвея.
Имеется n строк, образующих соты. В четных строках m клеток, в нечетных – (m-1) клетка, где m > 1.

Для ячеек нумерация задается следующим образом:


Каждая ячейка находится в одном из 2-х возможных состояний:
• 0 - "мертвая", окрашивается в один цвет
• 1 - "живая", окрашивается в другой цвет
Ячейки отделены друг от друга линиями толщиной w ( w >= 0 ) пикселей (толщина линии измеряет-ся перпендикулярно направлению, см. ниже). Цвет линии должен отличаться от цветов ячеек.

Размер ячейки k ¬¬– длина ребра.
Изначально все клетки мертвые. Состояние ячейки может быть изменено пользователем. После того как пользователь выбрал живые ячейки, запускается алгоритм "Жизнь" Конвея.

"Жизнь Конвея" – пошаговый алгоритм пересчета состояния клеток (клеточный автомат). На каж-дом этапе (году) жизни клетки могут рождаться (мёртвые клетки становятся живыми) и умирать (живые клетки становятся мёртвыми), а также клетка может не измениться, то есть остаться мёрт-вой или живой, какой она была на предыдущем шаге. Какой будет клетка на следующем этапе, оп-ределяется для каждой клетки (в отдельности!) количеством живых соседей на предыдущем этапе и их "влиянием".
В предложенной задаче считается, что на каждую клетку в гексагональной упаковке влияют двенадцать соседей. Они влияют по-разному в зависимости от степени близости (1-ый и 2-ой по-рядок). Слева на рисунке, приведенном выше, для клетки, отмеченной звёздочкой, обозначены со-седи 1-ого порядка (помечены 1) и соседи 2-ого порядка (помечены 2).
Для определения состояния клетки на следующем шаге необходимо вычислить влияние со-седей на предыдущем этапе. Назовем эту величину IMPACT. Эта величина рассчитывается сле-дующим образом:
IMPACT = FST_IMPACT * FST_COUNT + SND_IMACT * SND_COUNT,
где FST_IMPACT – влияние одного соседа 1-го порядка, FST_COUNT – количество соседей перво-го порядка, SND_IMPACT – влияние одного соседа 2-го порядка, SND_COUNT – количество сосе-дей второго порядка. Состояние клетки меняется по следующим правилам:
• Клетка рождается на следующем этапе, если на предыдущем она была мёртвой и BIRTH_BEGIN ≤ IMPACT ≤ BIRTH_END.
• Клетка остаётся живой, есть её LIVE_BEGIN ≤ IMPACT ≤ LIVE_END.
• Если IMPACT < LIVE_BEGIN, то клетка погибает от одиночества.
• Если IMPACT > LIVE_END клетка погибает от перенаселённости.
• Все упомянутые в этом абзаце величины должны быть неотрицательными. При этом LIVE_BEGIN ≤ BIRTH_BEGIN ≤ BIRTH_END ≤ LIVE_END.
Замечание: Все соседи учитываются по старым состояниям (состояниям на предыдущем этапе!).
Пользователь должен иметь возможность изменять значения величин LIVE_BEGIN, LIVE_END, BIRTH_BEGIN, BIRTH_END, FST_IMACPT и SND_IMPACT. При изменении вы должны проверять выполнение вышеупомянутых ограничений и выдавать сообщение об ошибке, если они не выполняются.
Изначально значения должны быть установлены следующими: LIVE_BEGIN = 2.0, LIVE_END = 3.3, BIRTH_BEGIN = 2.3, BIRTH_END = 2.9, FST_ IMPACT = 1.0, SND_ IMPACT = 0.3.
Внимание: Сначала для всех клеток рассчитывается значение IMPACT, в соответствии с располо-жением живых клеток на текущем году жизни клеток, и только потом вычисляется расположение клеток на следующем году в жизни в соответствии с правилами, приведёнными выше.
Для управления просмотра этапов жизни клеток на Toolbar'e (и в меню) должны быть добавле-ны следующие кнопки:
1. Следующий шаг (Next) рассчитывает состояние клеток на следующем этапе.
2. Запустить итеративный процесс (Run) : при нажатие кнопка западает, редактирование кле-ток запрещается и 1 раз в секунду (должно быть реализовано через WM_TIMER (см. MSDN)) пересчитывается состояние клеток. Когда запущен Run, кнопка Next неактивна.
3. Включение/выключение режима показа значений IMPACT (Display impact values) (западаю-щая кнопка). В этом режиме внутри каждой ячейки отображается значение IMPACT. Целые значения отображать без дробной части (как 2, а не 2.0). Размер шрифта можно выбрать фиксированный. Если размер клеток слишком мал (размер ячейки, например, k < 5), то отображать значение не надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru