Пограммирование таблицы цветов в 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. Зачем нужно имитационное моделирование?

Когда задача имеет слишком большую размерность или не подда­ется решению в явном (аналитическом) виде по каким-то другим при­чинам, используют иммитационное моделирование.

Управление в современном мире становится все более трудным делом, поскольку организационная структура нашего общества услож­няется. Эта сложность объясняется характером взаимоотношений меж­ду различными элементами наших организаций и физическими система­ми, с которыми они взаимодействуют. Хотя эта сложность существо­вала давно, мы только сейчас начинаем понимать ее значение. Те­перь мы сознаем, что изменение одной из характеристик системы мо­жет легко привести к изменениям или создать потребность в измене­ниях в других частях системы. В связи с этим получила развитие методология системного анализа ("исследование операций", "теория управления"), которая была призвана помочь руководителям и инже­нерам изучать и осмысливать последствия таких изменений. В част­ности, с появлением электронных вычислительных машин одним из на­иболее важных и полезных орудий анализа структуры сложных процес­сов и систем стало имитационное моделирование. Имитировать, зна­чит "вообразить, постичь суть явления, не прибегая к эксперимен­там на реальном объекте".

По существу, каждая модель есть форма имитации. Имитационное моделирование является широким и недостаточно четко определенным понятием, имеющим очень большое значение для лиц, ответственных за проектирование и функционирование систем.

Подобно всем мощным средствам, существенно зависящим от ис­кусства их применения, имитационное моделирование способно дать либо очень хорошие, либо очень плохие результаты. Оно может либо пролить свет на решение проблемы, либо ввести в заблуждение. Поэ­тому важно, чтобы руководитель или тот, кто принимает решения и будет пользоваться результатами моделирования, представлял себе

смысл вводимых допущений, сильные и слабые стороны метода, его

преимущества и тонкости. Подлинное умение пользоваться техникой

имитационного моделирования можно приобрести лишь на опыте.

Определение: