- •1 Постановка задачи и определение требований
- •Выводы по разделу один
- •2 Обзор существующих реализаций и описание основных преимуществ выбранной реализации перед аналогами
- •1.2.1 Обзор существующих реализаций
- •Выводы по разделу два Таким образом, наилучшем выбором платформы для разработки является Flash.
- •3 Выбор инструментальных средств разработки
- •4.1 Исследование технологий 3d-рендеринга на платформе Adobe Flash
- •5 Архитектура программного комплекса
- •5.1 Алгоритмические особенности программного комплекса
- •5.1.1 Анализ поставленной задачи
- •5.2 Алгоритм функционирования программного комплекса
- •5.2.1 Обобщенный алгоритм работы комплекса
- •5.2.2 Загрузка объектов в 3d-среду
- •5.2.3 Отрисовка 3d-мира
- •5.2.4 Обработка команд пользователя
- •5.2.5 Описание технологий. Binary Space Partitioning (bsp) дерево
- •5.2.6 Отсечение (клиппинг)
- •5.3 Варианты дальнейшего развития программного комплекса
- •5.4. Функциональные особенности программного комплекса
- •5.4.1 Концепция функционирования программного комплекса
- •6.2 Требования к содержимому тестов
- •6.3 Пример работы программного комплекса
- •7 ТехнологическАя часть
- •Программный комплекс соответствует технологическим нормам.
- •8 Организационно-экономический раздел
- •8.1 Смета затрат на проведение работ
- •8.2 Командировочные расходы
- •8.3 Заработная плата
- •Продолжение таблицы 8.9
- •8.4 Покупные изделия
- •8.5 Накладные расходы
- •8.6 Смета затрат
- •9 Раздел безопасности жизнедеятельности
- •9.1 Анализ достоинств интерфейса пользователя разработанной программы
- •9.2 Рекомендации по организации рабочего места пользователя
- •9.2.1 Рекомендации по выбору помещения для размещения рабочего места
- •9.2.2 Требования к микроклимату, содержанию аэроионов и вредных химических веществ в воздухе на рабочих местах, оборудованных пэвм
- •9.2.3 Требования к уровням шума и вибрации на рабочих местах, оборудованных пэвм
- •9.2.4 Требования к освещению на рабочих местах, оборудованных пэвм
- •9.2.5 Требования к уровням электромагнитных полей на рабочих местах, оборудованных пэвм
- •9.2.6 Общие требования к организации рабочих мест пользователей пэвм
- •9.2.7 Требования к организации и оборудованию рабочих мест с пэвм для обучающихся в общеобразовательных учреждениях и учреждениях начального и высшего профессионального образования
- •9.3 Электробезопасность
- •9.4 Пожарная безопасность
- •Библиографический список
- •Приложение а
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
- •Продолжение приложение а Продолжение листинга а.1
Продолжение приложение а Продолжение листинга а.1
{
rootContainer.addChild(aud802[i]);
message = aud802[i].name + " Loaded successfull";
}
infoButton.visible = true;
videoButton.visible = true;
aud802loaded = !aud802loaded;
}
} else{
if(aud802loaded){
//Нужно выгрузить окружение
for (i = 0; i < aud802.length; ++i)
{
aud802[i].parent.removeChild(aud802[i]);
message = aud802[i].name + " Unloaded successfull";
}
infoButton.visible = false;
videoButton.visible = false;
aud802loaded = !aud802loaded;
}
}
if(camera.y < -900 && camera.x < 590 && camera.x > 24){ //Мы в 804
Продолжение приложение а Продолжение листинга а.1
if(!aud804loaded){
for (i = 0; i < aud804.length; ++i)
{
rootContainer.addChild(aud804[i]);
message = aud804[i].name + " Loaded successfull";
}
aud804loaded = !aud804loaded;
}
} else{
if(aud804loaded){
for (i = 0; i < aud804.length; ++i)
{
aud804[i].parent.removeChild(aud804[i]);
message = aud804[i].name + " Unloaded successfull";
}
aud804loaded = !aud804loaded;
}
}
if(camera.y < -900 && camera.x < 1200 && camera.x > 590){ //Мы в 804a
if(!aud804aloaded){
for (i = 0; i < aud804a.length; ++i)
{
rootContainer.addChild(aud804a[i]);
message = aud804a[i].name + " Loaded successfull";
Продолжение приложение а Продолжение листинга а.1
}
aud804aloaded = !aud804aloaded;
}
} else{
if(aud804aloaded){
for (i = 0; i < aud804a.length; ++i)
{
aud804a[i].parent.removeChild(aud804a[i]);
message = aud804a[i].name + " Unloaded successfull";
}
aud804aloaded = !aud804aloaded;
}
}
if(camera.y > -650 && camera.x < -2500 && camera.x > -3900){ //Мы в 804a
if(!aud801loaded){
for (i = 0; i < aud801.length; ++i)
{
rootContainer.addChild(aud801[i]);
message = aud801[i].name + " Loaded successfull";
}
aud801loaded = !aud801loaded;
}
} else{
if(aud801loaded){
for (i = 0; i < aud801.length; ++i)
Продолжение приложение а Продолжение листинга а.1
{
aud801[i].parent.removeChild(aud801[i]);
message = aud801[i].name + " Unloaded successfull";
}
aud801loaded = !aud801loaded;
}
}
}
private function onEnterFrame(e:Event):void {
if(logoVisible)
controller.disable();
else
controller.enable();
curX = camera.x;
curY = camera.y;
curZ = camera.z;
if(prevX != curX || prevY != curY || prevZ != curZ){
textInfoField.border = false;
textInfoField.height = 0;
textInfoField.text = "";
prevX = 0;
prevY = 0;
prevZ = 0;
}
checkMyPosition();
Продолжение приложение а Продолжение листинга а.1
var beginCameraVec:Vector3D = new Vector3D(camera.x, camera.y, camera.z);
controller.update();
var endCameraVec:Vector3D = new Vector3D(camera.x, camera.y, camera.z);
// вектор перемещения
var displacement:Vector3D = new Vector3D();
displacement.x = endCameraVec.x – beginCameraVec.x;
displacement.y = endCameraVec.y – beginCameraVec.y;
// Проверка препятствий
var collisionPoint:Vector3D = new Vector3D();
var collisionPlane:Vector3D = new Vector3D();
var onCollision:Boolean = collider.getCollision(beginCameraVec, displacement, collisionPoint, collisionPlane, rootContainer);
if (!onCollision){
camera.x = endCameraVec.x;
camera.y = endCameraVec.y;
}
else {
var endVector:Vector3D = collider.calculateDestination(beginCameraVec, displacement, rootContainer);
camera.x = endVector.x;
camera.y = endVector.y;
}
camera.render();
//controller.update();