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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]