- •I. Оргвопросы
- •II. Проблемы системы образования россии
- •III. Проблемы мировой компьютерной индустрии
- •IV. Правила работы с литературой
- •V. Имитационное моделирование
- •Рисование эллипсов
- •Установка видеорежима
- •Выбор окна видеопамяти
- •Установка логической длины строки развертки
- •Организация видеопамяти
- •Пограммирование таблицы цветов в 256-цветном режиме
- •Классификация моделей
- •Достоинства и недостатки имитационного моделирования
Установка логической длины строки развертки
Страницы видеопамяти отображаются на экран последовательно, друг за другом. При этом на экран отображается только некоторая часть видеопамяти. Другая, невидимая часть, может использоваться как вспомогательная: для "прокрутки" изображения, для хранения шрифтов и масок, для z-буферизации и пр.
================
| |
| |--- видимая часть видеопамяти
| |
================
| |
| |
| |--- невидимая часть
| |
| |
----------------
Однако, если ширина экрана в пикселах не равна 2N (256, 512, 1024 или 2048), то концы страниц не будут совпадать с концами видеострок, что порождает множество проблем - при вычерчивании, к примеру, линии на экране, придется при выводе каждой точки выполнять проверку пересечения границы страницы, и, при необходимости, переключать страницу.
Постоянный контроль границы страницы и частое программное (через VESA-BIOS) переключение страниц чудовищно замедляет вывод информации на экран (в сотни или тысячи раз).
Эту проблему можно частично разрешить, реорганизуя видеопамять таким образом, чтобы логическая длина строки (длина строки видеопамяти) была больше физической (экранной) и стала кратной 2N:
видимая область
|
================---------
| | |
| | |
| | |
================ |
| |--- невидимая область
| |
-------------------------
Установка новой логической длины строки выполняется вызовом прерывания 10h с номером функции 4F065h. В регистр BL нужно записать 0, в регистр CX - требуемую ширину строки в пикселах.
Например, устанавливаем длину строки равной 1024 пиксела:
mov AX,4F06h
mov BL,0
mov CX,1024
int 10h
В 8-битовом режиме (256 цветов) на одну точку приходится 1 байт данных, в 32-битовом режиме True Color - 4 байта. Если логическая длина строки равна 1024 пиксела, то на одну страницу будет приходиться соответственно 64 строки в 256-цветном режиме и 16 строк - в режиме True Color.
Более радикальный способ используется в программах трехмерной графики, где каждую точку в каждом кадре приходится перезаписывать по несколько раз. Видеопамять работает медленнее ОЗУ и намного медленнее кэш-памяти. Поэтому (с точки зрения скорости работы) выгодно выделить в ОЗУ буфер кадра (от 2 до 8 Мб), пост-
роить там изображение и переписать готовый кадр в память видеокарты.
Для двумерной графики такой способ выигрыша по скорости обычно не дает - двумерная графика работает с небольшими областями экрана, а не с целым кадром, и переписывать весь кадр только ради изменения незначительной его части невыгодно.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N10
Организация видеопамяти
Организация памяти в режиме True Color
Каждый пиксел описывается четырьмя байтами данных - по одному для задания интенсивности каждого из основных цветов и один резервный - для "выравнивания" длины передаваемых данных на 2N:
31 24 23 16 15 8 7 0
--------- --------- --------- ---------
--------- --------- --------- ---------
3 2 1 0
резервный красный зеленый синий
(ноль)
Пограммирование таблицы цветов в 256-цветном режиме
В восьмибитовом режиме каждому из 256 кодов поставлен в соответствие определенный оттенок. Часто бывает необходимо переопределить набор оттенков (стандартный набор неудобен).
Каждый оттенок задается тремя 6-битовыми значесниями, определяющими интенсивности красного, зеленого и синего.
Перезапись таблицы оттенков выполняется вызовом прерывания 10h с номером функции 1012h. В регистр BX нужно записать 0, в регистр CX записать 256, в пару регистров ES:DX - указатель на начало таблицы размером 3*256 байтов, где в каждой группе из трех байтов записаны (побайтно) значения интенсивностей красного, синего и зеленого (могут принимать значения только от 0 до 63).
Пример:
mov AX,DATASEG
mov ES,AX
mov DX, offset ColorTable
mov AX,1012
mov BX,0
mov CX,256
int 10h
ЗАКРАСКА МНОГОУГОЛЬНИКОВ
Проблема закраски многоугольников возникает в двух основных случаях:
- в двумерной графике - при рисовании многоугольников в графических редакторах;
- в трехмерной графике - при отображении на экране какой-либо плоской поверхности.
Наиболее эффективным (быстрым) способом закраски (заливки) многоугольника является построчный вывод изображения:
- если многоугольник невыпуклый, его разделяют на несколько треугольников или выпуклых многоугольников;
- определяют вершины выпуклого многоугольника, имеющие минимальную и максимальную координаты по Y (верхнюю и нижнюю вершины);
- сканируют многоугольник построчно, определяя начальную и конечную координаты по X, для чего (используя алгоритм Брезенхема) просчитывают координаты всех точек ребер многоугольника;
- используя массив начальных и конечных точек (XB[i],XE[i]), выводят многоугольник построчно в видеопамять.
На самом деле, таким способом можно строить не только выпуклые многоугольники. Важно только, чтобы любую строку пересекало ровно два ребра многоугольника.
При выводе трехмерной фигуры с плоскими гранями ее проекция на экран будет состоять из ряда многоугольников. Однако на экране видны не все грани фигуры - перед выводом на экран необходимо тем или иным способом удалить невидимые поверхности, для чего существуют специальные алгоритмы. Для каждой грани необходимо также вычислить интенсивность цвета (сумму интенсивностей отраженного и рассеянного света) в зависимости от расположения источников света.
При работе с кривыми поверхностями их также представляют в виде многоугольников (обычно - треугольников), однако таких элементов для достаточно точной аппроксимации нужно много и приходится использовать алгоритмы сглаживания, что сильно замедляет вычисления - на каждую точку поверхности приходится несколько математических операций. В настоящее время даже графические станции не позволяют в реальном времени изображать движение сложного объекта в реальном мире.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 11
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
1. Что такое модель?
Модель - это нечто, чем можно заменить физический объект в процессе эксперимента.
2. Зачем нужна модель?
Экспериментировать с физическим объектом может быть дорого, долго, неудобно или опасно.
3. Зачем нужно имитационное моделирование?
Когда задача имеет слишком большую размерность или не поддается решению в явном (аналитическом) виде по каким-то другим причинам, используют иммитационное моделирование.
Управление в современном мире становится все более трудным делом, поскольку организационная структура нашего общества усложняется. Эта сложность объясняется характером взаимоотношений между различными элементами наших организаций и физическими системами, с которыми они взаимодействуют. Хотя эта сложность существовала давно, мы только сейчас начинаем понимать ее значение. Теперь мы сознаем, что изменение одной из характеристик системы может легко привести к изменениям или создать потребность в изменениях в других частях системы. В связи с этим получила развитие методология системного анализа ("исследование операций", "теория управления"), которая была призвана помочь руководителям и инженерам изучать и осмысливать последствия таких изменений. В частности, с появлением электронных вычислительных машин одним из наиболее важных и полезных орудий анализа структуры сложных процессов и систем стало имитационное моделирование. Имитировать, значит "вообразить, постичь суть явления, не прибегая к экспериментам на реальном объекте".
По существу, каждая модель есть форма имитации. Имитационное моделирование является широким и недостаточно четко определенным понятием, имеющим очень большое значение для лиц, ответственных за проектирование и функционирование систем.
Подобно всем мощным средствам, существенно зависящим от искусства их применения, имитационное моделирование способно дать либо очень хорошие, либо очень плохие результаты. Оно может либо пролить свет на решение проблемы, либо ввести в заблуждение. Поэтому важно, чтобы руководитель или тот, кто принимает решения и будет пользоваться результатами моделирования, представлял себе
смысл вводимых допущений, сильные и слабые стороны метода, его
преимущества и тонкости. Подлинное умение пользоваться техникой
имитационного моделирования можно приобрести лишь на опыте.
Определение:
Имитационное моделирование есть процесс конструирования модели реальной системы и постановки экспериментов на этой модели с целью либо понять поведение системы, либо оценить (в рамках ограничений, накладываемых некоторым критерием или совокупностью критериев) различные стратегии, обеспечивающие функционирование данной системы.
Таким образом, процесс имитационного моделирования мы понимаем как процесс, включающий и конструирование модели, и аналитическое применение модели для изучения некоторой проблемы. Под моделью реальной системы мы понимаем представление группы объектов или идей в некоторой форме, отличной от их реального воплощения. Термин "реальный" используется в смысле "существующий или способный принять одну из форм существования". Системы, существующие еще только на бумаге или находящиеся в стадии планирования, могут моделироваться так же, как и действующие системы.
Согласно нашему определению, термин имитационное моделирование может также охватывать стохастические модели и эксперименты с использованием метода Монте-Карло. Иными словами, входы модели и функциональные соотношения между ними могут содержать, а могут и не содержать элемент случайности, подчиняющийся вероятностным законам. Более того, мы не ограничиваем наше определение имитационного моделирования лишь экспериментами, проводимыми с помощью машинных моделей. Много полезных видов имитационного моделирования может быть осуществлено всего лишь при помощи карандаша и листа бумаги.
Имитационное моделирование является экспериментальной и прикладной методологией, имеющей целью:
- описать поведение систем;
- построить теории и гипотезы, которые могут объяснить наблюдаемое поведение;
- использовать эти теории для предсказания будущего поведения системы, т.е. тех воздействий, которые могут быть вызваны изменениями в системе или изменениями способов ее функционирования.
В отличие от большинства технических методов, которые могут быть классифицированы в соответствии с научными дисциплинами, в которые они уходят своими корнями (например, с физикой или химией), имитационное моделирование применимо в любой отрасли науки.
Для моделирования системы нам необходимо поставить искусственный эксперимент, отражающий основные условия моделируемой ситуации. Для этого мы должны придумать способ имитации искусственной последовательности происходящих в системе событий.
Модель является представлением объекта, системы или понятия (идеи) в некоторой форме, отличной от формы их реального существования. Модель служит обычно средством, помогающим нам в объяснении, понимании или совершенствовании системы. Модель какого-либо объекта может быть или точной копией этого объекта (хотя и выполненной из другого материала и в другом масштабе), или отображать некоторые характерные свойства объекта в абстрактной форме.
Примечание: абсолютно точной моделью объекта является сам этот объект. Все остальные модели - приближенные.
Модель - это используемый для предсказания и сравнения инструмент, позволяющий логическим путем спрогнозировать последствия альтернативных действий и достаточно уверенно указать, какому из них отдать предпочтение. Кроме того, модель может служить эффективным средством общения и осмысления действительности. Имитация
- всего лишь один из видов моделирования.
По существу, прогресс науки и техники тесно связан с развитием способности человека создавать модели естественных явлений. Одним из главных элементов, необходимых для эффективного решения сложных задач, является построение и соответствующее использование модели. Такая модель может принимать разнообразные формы, но одна из наиболее полезных и наиболее употребительных форм - это математическая, выражающая посредством системы уравнений существенные черты изучаемых реальных систем и явлений. К сожалению, не всегда возможно создать математическую модель в узком смысле слова. При изучении большинства промышленных и военных систем мы можем определить цели, указать ограничения и предусмотреть, чтобы наша конструкция подчинялась техническим и экономическим законам. При этом могут быть вскрыты и представлены в той или иной математической форме существенные связи в системе. В отличие от этого решение, к примеру, экологических проблем связано с неясными и противоречивыми целями, а также с выбором альтернатив, диктуемых политическим и социальным факторами.
Следовательно, модель должна описывать как количественные, так и качественные характеристики системы.
Модель может применяться в качестве:
- средства осмысления действительности;
- средства общения;
- средства обучения и тренировки;
- инструмента прогнозирования;
- средства постановки экспериментов.
Полезность модели как средства осмысления реальных связей и закономерностей очевидна. Модели могут помочь нам упорядочить наши нечеткие или противоречивые понятия и несообразности. Модель помогает нам выявить взаимосвязи, временные соотношения, требуемые ресурсы и т.п. Уже сама попытка представить наши словесные формулировки и мысли в какой-то иной форме часто выявляет противоречия и неясности. Правильно построенная модель вынуждает нас организовать наши замыслы, оценить и проверить их обоснованность.
Как средство общения хорошо продуманная модель не имеет себе равных. "Лучше один раз увидеть, чем сто раз услышать". Все языки, в основе которых лежит слово, в той или иной мере оказываются неточными, когда дело доходит до сложных понятий и описаний. Преимущество модели перед словесными описаниями - в сжатости и точности представления заданной ситуации. Модель делает более понятной общую структуру исследуемого объекта и вскрывает важные причинно-следственные связи.
Модели применялись и продолжают широко применяться в качестве средства профессиональной подготовки и обучения. Модель - превосходное средство подготовки операторов, которые должны научиться справляться с всевозможными случайностями до возникновения реальной критической ситуации в системе управления.
Одним из наиболее важных применений моделей является прогнозирование поведения моделируемых объектов. Строить сверхзвуковой реактивный самолет для определения его летных характеристик экономически нецелесообразно, однако они могут быть предсказаны средствами моделирования.
Наконец, применение моделей позволяет проводить контролируемые эксперименты в ситуациях, где экспериментирование на реальных объектах было бы практически невозможным или экономически нецелесообразным. Непосредственное экспериментирование с системой (натурный эксперимент) обычно состоит в варьировании некоторых ее параметров; поддерживая остальные параметры неизменными, наблюдают результат эксперимента. Когда ставить эксперимент на реальной системе слишком дорого, используют ее модель. При экспериментировании с моделью сложной системы мы часто можем больше узнать о ее внутренних взаимодействующих факторах, чем могли бы узнать, манипулируя реальной системой. Это становится возможным благодаря измеряемости структурных элементов модели, благодаря тому, что мы можем полностью контролировать ее поведение, легко измерять параметры.
ПРИКЛАДНОЕ ПРОГРАММИРОВАНИЕ В ТЕХНИЧЕСКИХ СИСТЕМАХ
ЛЕКЦИЯ N 12
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ
Модель может служить для достижения одной ид двух основных целей: либо описательной, если модель служит для объяснения и лучшего понимания объекта, либо предписывающей, когда модель позволяет предсказывать и воспроизвести характеристики объекта, определяющие его поведение. Модель предписывающего типа обычно является и описательной, но не наоборот, Это означает, что предписывающая модель почти всегда является описательной по отношению к моделируемому объекту, но описательная модель не всегда полезна для целей планирования и проектирования.
Различная степень полезности моделей, применяемых в технике и в социальных науках, в значительной мере зависит от методов и средств, которые использовались при построении моделей, и различий в конечных целях, которые при этом ставились. В технике модели служат в качестве вспомогательных средств при разработке новых или более совершенных систем, в то время как в социальных науках модели объясняют существующие системы. Модель, пригодная для целей разработки системы, должна также и объяснять ее, но очевидно, что модели, создаваемые исключительно для объяснения, часто не соответствуют даже своему прямому назначению.