Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5ballov-32362.rtf
Скачиваний:
24
Добавлен:
08.06.2015
Размер:
384.66 Кб
Скачать

Установка логической длины строки развертки

Страницы видеопамяти отображаются на экран последовательно, друг за другом. При этом на экран отображается только некоторая часть видеопамяти. Другая, невидимая часть, может использоваться как вспомогательная: для "прокрутки" изображения, для хранения шрифтов и масок, для 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

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

Модель может служить для достижения одной ид двух основных целей: либо описательной, если модель служит для объяснения и лучшего понимания объекта, либо предписывающей, когда модель поз­воляет предсказывать и воспроизвести характеристики объекта, оп­ределяющие его поведение. Модель предписывающего типа обычно яв­ляется и описательной, но не наоборот, Это означает, что предпи­сывающая модель почти всегда является описательной по отношению к моделируемому объекту, но описательная модель не всегда полезна для целей планирования и проектирования.

Различная степень полезности моделей, применяемых в технике и в социальных науках, в значительной мере зависит от методов и средств, которые использовались при построении моделей, и разли­чий в конечных целях, которые при этом ставились. В технике моде­ли служат в качестве вспомогательных средств при разработке новых или более совершенных систем, в то время как в социальных науках модели объясняют существующие системы. Модель, пригодная для це­лей разработки системы, должна также и объяснять ее, но очевидно, что модели, создаваемые исключительно для объяснения, часто не соответствуют даже своему прямому назначению.