- •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
if(object.name.indexOf("802_") >=0 ){
mesh.sorting = Sorting.DYNAMIC_BSP;
mesh.addEventListener(MouseEvent3D.MOUSE_DOWN, drawSpot);
aud802[aud802.length] = mesh;
} else if(object.name.indexOf("801_") >=0 ){
mesh.sorting = Sorting.DYNAMIC_BSP;
mesh.addEventListener(MouseEvent3D.MOUSE_DOWN, drawSpot);
aud801[aud801.length] = mesh;
} else if(object.name.indexOf("804_") >=0 ){
mesh.sorting = Sorting.DYNAMIC_BSP;
mesh.addEventListener(MouseEvent3D.MOUSE_DOWN, drawSpot);
aud804[aud804.length] = mesh;
} else if(object.name.indexOf("804a_") >=0 ){
mesh.sorting = Sorting.DYNAMIC_BSP;
mesh.addEventListener(MouseEvent3D.MOUSE_DOWN, drawSpot);
aud804a[aud804a.length] = mesh;
} else {
///rootContainer.addChild(mesh);
}
}
}
Продолжение приложение а Продолжение листинга а.1
}
rootContainer.createTree(sourceGeometry,
sourceSplitters,
false,
staticObjects);
// Загрузка текстур
var materialLoader:MaterialLoader = new MaterialLoader();
for each (var material in parser.textureMaterials) {
material.repeat = true;
}
materialLoader.load(parser.textureMaterials);
}
private function drawSpot(e:MouseEvent3D):void {
var object:Object3D = e.target as Object3D;
var data:RayIntersectionData = object.intersectRay(e.localOrigin, e.localDirection);
if(logoVisible){
logoVisible = false;
removeChild(logo);
}
if (data != null) {
message = " You touch " + data.object.toString();
if(data.object.toString() == "[Mesh 802_254]"){
message = "\n Уникальный аппарат по производству\n" +
" схематических микросхем прямиком\n" +
" из далеко прошлого. Вам предостав-\n" +
Продолжение приложение а Продолжение листинга а.1
" ляется уникальнейший шанс прикос-\n" +
" нуться к частичке истории и \n" +
" попробовать собрать простейший\n" +
" счетчик или даже JK-триггер!\n" +
"";
drawTextInfo(140, message);
}
if(data.object.toString() == "[Mesh Object435]"){
message = " Это стул, на нем сидят";
}
if(data.object.toString() == "[Mesh Object435]"){
message = " Это стул, на нем сидят";
}
if(data.object.toString() == "[Mesh Object217]"){
message = " Это стол, за ним едят";
}
if(data.object.toString() == "[Mesh Box248]" || data.object.toString() == "[Mesh Box001]"){
message = " Немытая доска";
}
if(data.object.toString() == "[Mesh 802_251]"){
// Добавление изображения
logo.x = 100;
logo.y = 0;
addChild(logo);
logoVisible = true;
}
}
}
Продолжение приложение а Продолжение листинга а.1
private function drawTextInfo(height:int, mess:String):void{
prevX = camera.x;
prevY = camera.y;
prevZ = camera.z;
textInfoField.height = 0;
textInfoField.border = true;
textInfoField.borderColor = 0xFFFFFF;
textInfoField.textColor = 0xFFFFFF;
var myTimer:Timer = new Timer(1, height/8);
myTimer.addEventListener("timer", timerHandler);
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler);
myTimer.start();
}
private function timerHandler(event:TimerEvent):void {
textInfoField.height = textInfoField.height + 8;
}
private function completeHandler(event:TimerEvent):void {
textInfoField.text = message;
}
private function checkMyPosition():void{
var i:int;
if(camera.y < -900 && camera.x < 24 && camera.x > -1200){ //Мы в 802
if(!aud802loaded){
//Нужно загрузить окружение
for (i = 0; i < aud802.length; ++i)