Поворот вокруг фиксированной точки — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Поворот вокруг фиксированной точки

2022-10-29 32
Поворот вокруг фиксированной точки 0.00 из 5.00 0 оценок
Заказать работу

Р` = Р·М,

где М = Т(-X0, - Y0) ∙R(φ)∙T(X0, Y0) – матрица преобразований.

Смещаем точку Возвращаем точку

в начало координат в исходное состояние

 

В результате произведений матриц получаем матрицу преобразования M:

1 0 0 cos(φ) sin(φ) 0 1 0 0

M = 0 1 0 · –sin(φ) cos(φ) 0 · 0 1 0 =

–X1 –Y1 1 0 0 1 X1 Y1 1

 
 


cos(φ) sin(φ) 0

= –sin(φ) cos(φ) 0

X1·(1–cos(φ))+Y1·sin(φ) Y1·(1–cos(φ)) –X1·sin(φ) 1

В общем случае матрицу преобразований можно записать следующим образом:

m11 m12 0

M = m21 m22 0; P` = P·M

m31 m32 1

x’ = x · m11 + y · m21 + m31 Перейдём к алгебраическому выражению:

y’ = x · m12 + y · m22 + m32

8 Можно разработать более эффективный метод, чем тест на принадлежность внутренней части, если воспользоваться тем фактом, что соседние пикселы, вероятно, имеют одинаковые характеристики (кроме пикселов граничных ребер). Это свойство называется пространственной когерентностью. Для растровых графических устройств соседние пикселы на сканирующей строке, вероятно, имеют одинаковые характеристики. Это когерентность растровых строк.

Характеристики пикселов на данной строке изменяются только там, где ребро многоугольника пересекает строку. Эти пересечения делят сканирующую строку на области.

Рис. 3.1. Растровая развертка сплошной области.

Для простого многоугольника на рис. 3.1 строка 2 пересекает многоугольник при х = 1 и х = 8. Получаем три области:

x < 1 вне многоугольника
1 <= x <= 8 внутри многоугольника
x > 8 вне многоугольника

Строка 4 делится на пять областей:

x < 1 вне многоугольника
1<= x <= 4 внутри многоугольника
4 < x < 6 вне многоугольника
6 <= x <= 8 внутри многоугольника
x > 8 вне многоугольника

Совсем необязательно, чтобы точки пересечения для строки 4 сразу определялись в фиксированном порядке (слева направо). Например, если многоугольник задается списком вершин P1P2P3P4P5, а список ребер - последовательными парами вершин Р1Р2, Р2Р3, Р3Р4, P4P5, P5P1 то для строки 4 будут найдены следующие точки пересечения с ребрами многоугольника: 8, 6, 4, 1. Эти точки надо отсортировать в возрастающем порядке по х, т. е. получить 1, 4, 6, 8.

При определении интенсивности, цвета и оттенка пикселов на сканирующей строке рассматриваются пары отсортированных точек пересечений. Для каждого интервала, задаваемого парой пересечений, используется интенсивность или цвет заполняемого многоугольника. Для интервалов между парами пересечений и крайних (от начала строки до первой точки пересечения и от последней точки пересечения до конца строки) используется фоновая интенсивность или цвет. На рис. 3.1 для строки 4 в фоновый цвет установлены пикселы: от 0 до 1, от 4 до 6, от 8 до 10, тогда как пикселы от 1 до 4 и от 5 до 8 окрашены в цвет многоугольника.

Точное определение тех пикселов, которые должны активироваться. требует некоторой осторожности. Рассмотрим простой прямоугольник, изображенный на рис. 3.2. Прямоугольник имеет координаты (1,1) (5,1), (5,4), (1,4). Сканирующие строки с 1 по 4 имеют пересечения с ребрами многоугольника при х = 1 и 5. Вспомним, что пиксел адресуется координатами своего левого нижнего угла, значит, для каждой из этих сканирующих строк будут активированы пикселы с x-координатами 1, 2, 3, 4 и 5. На рис. 3.2 (а) показан результат. Заметим, что площадь, покрываемая активированными пикселами, равна 20, в то время как настоящая площадь прямоугольника равна 12.

а   б

Рис. 3.2 Система координат строк сканирования.

Модификация системы координат сканирующей строки и теста активации устраняет эту проблему, как это показано на рис. 3.2 (б). Считается, что сканирующие строки проходят через центр строк пикселов, т. е. через середину интервала, как это показано на рис. 3.2 (б). Тест активации модифицируется следующим образом: проверяется, лежит ли внутри интервала центр пиксела, расположенного справа от пересечения. Однако пикселы все еще адресуются координатами левого нижнего угла. Как показано на рис. 3.2 (б), результат данного метода корректен.

Горизонтальные ребра не могут пересекать сканирующую строку и, таким образом, игнорируются. Это совсем не означает, что их нет на рисунке. Эти ребра формируются верхней и нижней строками пикселов, как показано на рис. 3.2. Рис. 3.2 иллюстрирует корректность верхнего и нижнего ребер многоугольника, полученных в результате модификации системы координат сканирующих строк.

Дополнительная трудность возникает при пересечении сканирующей строки и многоугольника точно по вершине, как это показано на рис. 3.3.

Рис.3.3. Особенности пересечения со строками сканирования.

При использовании соглашения о середине интервала между сканирующими строками получаем, что строка у = 3,5 пересечет многоугольник в 2, 2 и 8, т. е. получится нечетное количество пересечений. Следовательно, разбиение пикселов на пары -даст неверный результат, т. е. пикселы (0, 3), (1, 3) и от (3, 3) до (7, 3) будут фоновыми, а пикселы (2, 3), (8, 3), (9, 3) окрасятся в цвет многоугольника. Здесь возникает идея учитывать только одну точку пересечения с вершиной. Тогда для строки у = 3,5 получим правильный результат. Однако результат применения метода к строке у = 1,5, имеющей два пересечения в (5, 1), показывает, что метод неверен. Для этой строки именно разбиение на пары даст верный результат, т. е. окрашен будет только пиксел (5, 1), Если же учитывать в вершине только одно пересечение, то пикселы от (0, 1) до (4, 1) будут фоновыми, а пикселы от (5, 1) до (9, 1) будут окрашены в цвет многоугольника.

Правильный результат можно получить, учитывая точку пересе-чения в вершине два раза, если она является точкой локального ми-нимума или максимума и учитывая ее один раз в противном слу-чае. Определить локальный максимум или минимум многоугольни-ка в рассматриваемой вершине можно с помощью проверки концевых точек двух ребер, соединенных в вершине. Если у обоих концов координаты у больше, чем у вершины, значит, вершина является точкой локального минимума. Если меньше, значит, вершина - точка локального максимума. Если одна больше, а другая меньше, следовательно, вершина не является ни точкой локального минимума, ни точкой локального максимума. На рис. 3.3 точка P 1 - локальный минимум, Р 3 - локальный максимум, а Р 2, Р4 - ни то и ни другое. Следовательно, в точках Р 1 и P 3 учитываются два пересечения со сканирующими строками, а в Р2 и Р4 - одно.

5. VGA (так же, как и EGA) состоит из следующих основных подсистем (в народе словом "секвенсер" называли набор регистров управления доступом к плоскостям видеопамяти):

  • Графический контроллер (Graphics Controller), посредством которого происходит обмен данными между центральным процессором и видеопамятью. Имеет возможность выполнять битовые операции над передаваемыми данными.
  • Видеопамять (Display Memory), в которой размещаются данные, отображаемые на экране монитора. 256 кБ DRAM разделены на четыре цветовых слоя по 64 кБ.
  • Последовательный преобразователь (Serializer или Sequencer) — преобразует данные из видеопамяти в поток битов, передаваемый контроллеру атрибутов[3].
  • Контроллер атрибутов (Attribute Controller) — с помощью палитры преобразует входные данные в цветовые значения.
  • Синхронизатор (Sequencer) — управляет временны́ми параметрами видеоадаптера и переключением цветовых слоёв.
  • Контроллер ЭЛТ (CRT Controller) — генерирует сигналы синхронизации для ЭЛТ[4][5].

В отличие от CGA и EGA, основные подсистемы располагаются в одной микросхеме, что позволяет уменьшить размер видеоадаптера (EGA тоже был реализован в одном чипе, по крайней мере его тайванские неоригинальные клоны). В компьютерах PS/2 видеоадаптер VGA интегрирован в материнскую плату [2].

[править] Отличия от EGA

VGA полностью аналогичен EGA (включая плоскостную видеопамять в 16цветных режимах и секвенсор для доступа процессора к ней), за исключением нижеследующего:

  • иной разъем и кабель к монитору (и иные мониторы), аналоговый, а не 2 бита на цвет. Этот разъем и кабель не менялись около 15 лет (до появления цифровых пакетно-ориентированных технологий DVI, HDMI и DisplayPort, пришедших из мира бытовой видеотехники) и использовались далее в куда более высоких разрешениях. Даже стандартные VGA мониторы сплошь и рядом были способны показывать режим 800x600 при использовании с более современной видеокартой (все зависело от качества блоков развертки монитора и их способности не сорвать генерацию на таких повышенных частотах). В настоящее время (все современные видеокарты совместимы с VGA сверху вниз) слово "VGA" в обиходе oзначает именно этот тип подключения монитора, ныне устаревший, но все еще актуальный.
  • 18битные цвета в палитре вместо 6битных, такой богатый набор позволял, например, реализовать ночь, плохую погоду, "заколдованные" режимы и мерцающие цвета в играх одной лишь палитрой (как в Ultima VII)
  • наличие 256-цветных режимов, стандартный - 320x200, недокументированными (на деле документированными в документациях на аппаратуру VGA, но не включенными в BIOS и его документацию) ухищрениями можно было получить 320x240 (квадратные пиксели, т.н. "режим Х") и выше
  • максимальный 16цветный режим - 640x480 (квадратные пиксели)
  • во всех 200строчных графических режимах сканлиния повторялась 2 раза, что давало 400 физических строк развертки монитора, что сильно улучшало качество картинки даже в младших режимах (отсутствие щелей между строк развертки).
  • высота ячейки знакогенератора - 16 сканлиний, а не 14, как у EGA, что давало те же 400 строк развертки во всех текстовых режимах (кроме режимов совместимости со знакогенератором EGA). Таким образом, VGA всегда использовал 400 строк развертки, кроме двух старших 16цветных режимов, где их было 480 и 350. Режим Х также использовал 480 строк.
  • все регистры (палитры, секвенсера и т.д.) доступны на чтение, EGA имел ряд регистров "только для записи" (например, палитра).

[править] Текстовые режимы

В стандартных текстовых режимах символы формируются в ячейке 9×16 пикселов, возможно использование шрифтов других размеров: 8—9 пикселов в ширину и 1—32 пиксела в высоту. Размеры самих символов, как правило, меньше, так как часть пространства уходит на создание зазора между символами. Функция для выбора размера шрифта в BIOS отделена от функции выбора видеорежима, что позволяет использовать различные комбинации режимов и шрифтов. Имеется возможность загрузки восьми и одновременного вывода на экран двух различных шрифтов[2][6].

В VGA BIOS хранятся следующие виды шрифтов и функции для их загрузки и активации:

  • 8×16 пикселов (стандартный шрифт VGA),
  • 8×14 (для совместимости с EGA),
  • 8×8 (для совместимости с CGA).

Как правило, эти шрифты соответствуют кодовой странице CP437. Также поддерживается программная загрузка шрифтов, которую можно использовать, например, для русификации[7].

Доступны следующие стандартные режимы:

  • 40×25 символов, 16 цветов, разрешение 360×400 пикселов.
  • 80×25 символов, 16 цветов, разрешение 720×400 пикселов.
  • 80×25 символов, монохромный, разрешение 720×400 пикселов[4].

Используя шрифты меньших размеров, чем стандартный 8×16, можно увеличить количество строк в текстовом режиме. Например, если включить шрифт 8×14, то будет доступно 28 строк. Включение шрифта 8×8 увеличивает количество строк до 50 (аналогично режиму EGA 80×43)[8][9].

В текстовых режимах для каждой ячейки с символом можно указать атрибут, задающий способ отображения символа. Существует два отдельных набора атрибутов — для цветных режимов и для монохромных. Атрибуты цветных текстовых режимов позволяют выбрать один из 16-ти цветов символа, один из 8-ми цветов фона и включить или отключить мерцание (возможность выбора мерцания можно заменить на возможность выбора одного из 16-ти цветов фона), что совпадает с возможностями CGA. Атрибуты монохромных режимов совпадают с атрибутами, доступными у MDA, и позволяют включать повышенную яркость символа, подчёркивание, мерцание, инверсию и некоторые их комбинации[2].

[править] Графические режимы

В отличие от своих предшественников (CGA и EGA) видеоадаптер VGA имел видеорежим с квадратными пикселами (то есть, на экране с соотношением сторон 4:3 соотношение горизонтального и вертикального разрешений было также 4:3). У адаптеров CGA и EGA пикселы были вытянуты по вертикали.

[править] Стандартные графические режимы

  • 320×200 пикселов, 4 цвета.
  • 320×200 пикселов, 16 цветов.
  • 320×200 пикселов, 256 цветов (новый для VGA).
  • 640×200 пикселов, 2 цвета.
  • 640×200 пикселов, 16 цветов.
  • 640×350 пикселов, монохромный.
  • 640×350 пикселов, 16 цветов.
  • 640×480 пикселов, 2 цвета. При разрешении 640×480 пиксел имеет пропорции 1:1 (новый для VGA).
  • 640×480 пикселов, 16 цветов (новый для VGA)[4].

[править] Нестандартные графические режимы (X-режимы)

Перепрограммирование VGA позволяло достичь более высоких разрешений по сравнению со стандартными режимами VGA. Наиболее распространённые режимы таковы:

  • 320×200, 256 цветов, 4 страницы. Ничем внешне не отличающийся от режима 13h (320×200, 256 цветов), этот режим имел четыре видеостраницы. Это позволяло реализовать двойную и даже тройную буферизацию.
  • 320×240, 256 цветов, 2 страницы. В этом режиме страниц меньше, зато квадратные пиксели.
  • 360×480, 256 цветов, 1 страница. Наибольшее разрешение на 256 цветах, которое позволяет VGA.

Во всех этих режимах используется плоскостная организация видеопамяти, концептуально похожая на используемую в 16цветных режимах, но использующая для формирования цвета по 2 бита из каждой плоскости, а не по 1 - т.е. биты 0-1 байта 0 в плоскости 0 давали биты 0-1 цвета пиксела 0, те же биты в плоскости 1 - биты 2-3 цвета, и т.д. Следующие биты того же байта давали цвета следующих пикселов, т.е. 4 расположенные "один параллельно другому" по одному адресу байта в 4 плоскостях задавали цвет 4 пикселов.

Такая организация видеопамяти позволяла использовать всю видеопамять карты, а не только плоскость 0 в 64К, для формирования 256цветной картинки, что давало возможность использования высоких разрешений, или же многих страниц.

Для работы с такой памятью использовался тот же секвенсер, что и в 16цветных режимах.

Зато из-за особенностей контроллера видеопамяти копирование данных в видеопамять происходит вчетверо быстрее, чем в режиме 13h (это сильно зависит от конкретного машинного кода, исполняющего копирование, и конкретного сценария рисования, а именно заливки сплошным цветом, в общем случае плоскостная видеопамять куда медленнее обычной, и именно потому в SVGA от нее отказались полностью).

Термин «X-режим» (англ. Mode X) был придуман Майклом Абрашем в 1991 году для обозначения нестандартного режима 320×240 с 256 цветами. Этот режим был открыт (путем изучения IBMовской документации на аппаратуру VGA, которая в те времена была защищена на правовом уровне и не ходила в виде файлов в публичном доступе, опубликованы были только вызовы VGA BIOS, которые не умели включать эти режимы) различными программистами независимо друг от друга, но стал известным благодаря статьям Майкла Абраша в журнале «Dr. Dobb’s Journal»[10].

  • SuperVGA (англ. Super Video Graphics Array) — общее название видеоадаптеров, совместимых с VGA, но имеющих расширенные по отношению к нему возможности - разрешения от 800х600 и выше при количестве цветов от 2(монохромный режим) до 16 миллионов (24 бит на пиксель), а также большие объемы видеопамяти. Обязательной поддержки какого либо режима, кроме стандартных режимов VGA и режима 800х600, название SVGA не подразумевает. Все современные (и не очень) популярные видеокарты можно отнести к данному классу, вследствие чего название практически не используется. Стандарта SVGA не существует, но практически все SVGA-видеоадаптеры начиная с некоторого времени следуют стандарту VESA. Наиболее распространенные видеорежимы: 800x600, 1024x768, 1280x1024, 1600x1200. Также аббревиатурой SVGA называют разрешение экрана 800×600.
  • В 2013 – 2015 годах ряд производителей планирует отказатся от интерфейса VGA и SVGA, в пользу цифровых интерфейсов HDMI и DisplayPort. Ведущие производители электроники – Intel и AMD, присоединились к производителям компьютеров и комплектующих: Dell, Lenovo, Samsung и LG, которые также планируют к 2015 году отказаться от интерфейса VGA. Как говорится в совместном пресс-релизе Intel и AMD: «Интерфейсы DisplayPort и HDMI, которые могут быть использованы в тонких ноутбуках, поддерживают более высокие разрешения с более глубоким цветом, чем технология VGA, которой уже более 20 лет». По мнению главного технического директора графического подразделения AMD Эрика Демерса «С нашей точки зрения, DisplayPort 1.2 - будущий интерфейс для компьютерных мониторов, а HDMI 1.4a - для подключения телевизоров».

 

2 Графические дисплеи на запоминающей трубке. Запоминающую ЭЛТ можно рассматривать как ЭЛТ, покрытую люминофором с длительным временем послесвечения. Линия или литера остаются на ней видимыми в течение длительного времени (до одного часа), прежде чем станут окончательно неразличимыми. Чтобы нарисовать отрезок на дисплее, интенсивность электронного луча увеличивают до такой величины, которая вызывает запоминание следа луча на люминофоре. Для стирания изображения на всю трубку подают специальное напряжение, снимающее свечение люминофора. Экран вспыхивает и принимает исходное (темное) состояние. Поскольку вспыхивает вся трубка, то стираются все отрезки и литеры. Таким образом, стереть отдельные линии литеры нельзя, и изображение динамического движения или анимация невозможны. Иногда для обеспечения возможности ограниченной регенерации используется промежуточное состояние (режим рисования поверх изображения). В этом случае интенсивность электронного луча принимает значение, меньшее порогового, которое вызывает запоминание, но достаточное для свечения люминофора. Поскольку в этом режиме изображение не сохраняется, для его видимости необходима постоянная перерисовка.

Дисплей на запоминающей трубке способен изображать фактически неограниченное количество векторов, а мерцание изображения вообще невозможно. Это векторный дисплей, или дисплей с произвольным сканированием, поэтому отрезок (вектор) может быть нарисован непосредственно из одной адресуемой точки в любую другую.

Векторные графические дисплеи с регенерацией изображения. В противоположность дисплею на запоминающей трубке в векторном (рисующем отрезки или векторы) дисплее с регенерацией изображения на базе ЭЛТ используется люминофор с очень коротким временем послесвечения. Из-за того что время послесвечения люминофора мало, изображение на ЭЛТ за секунду должно многократно перерисовываться или регенерироваться.

Для векторного дисплея с регенерацией требуется кроме ЭЛТ еще два элемента: дисплейный буфер и дисплейный контроллер. Дисплейный буфер - это непрерывный участок памяти, содержащий всю информацию, необходимую для вывода изображения на ЭЛТ. Функция дисплейного контроллера заключается в том, чтобы циклически обрабатывать эту информацию со скоростью регенерации.

Растровые графические дисплеи с регенерацией изображения. Как дисплеи на запоминающих ЭЛТ, так и дисплеи с произвольным сканированием являются устройствами рисования отрезков, т. е. отрезок прямой может быть нарисован непосредственно из любой адресуемой точки в любую другую. Графическое устройство на растровой ЭЛТ работает по-другому. Растровое устройство можно рассматривать как матрицу дискретных ячеек (точек), каждая из которых может быть подсвечена. Таким образом, оно является точечно-рисующим устройством. Невозможно, за исключением специальных случаев, непосредственно нарисовать отрезок прямой из одной адресуемой точки или пиксела в матрице в другую адресуемую точку или пиксел. Отрезок можно лишь аппроксимировать последовательностями точек (пикселов), близко лежащих к реальной траектории отрезка.

Чаще всего для графических устройств с растровой ЭЛТ используется буфер кадра. Буфер кадра представляет собой большой непрерывный участок памяти компьютера. Для каждой точки, или пиксела, в растре отводится как минимум один бит памяти. Эта память называется битовой плоскостью. Для квадратного растра размером 512x512 требуется 218, или 262144 бита памяти в одной битовой плоскости. Изображение в буфере кадра строится побитно. Из-за того что бит памяти имеет только два состояния (двоичное 0 или 1), имея одну битовую плоскость, можно получить лишь черно-белое изображение. Битовая плоскость является цифровым устройством, тогда как растровая ЭЛТ - аналоговое устройство, для работы которого требуется электрическое напряжение. Поэтому при считывании информации из буфера кадра и ее выводе на графическое устройство с растровой ЭЛТ должно происходить преобразование из цифрового представления в аналоговый сигнал. Такое преобразование выполняет цифро-аналоговый преобразователь (ЦАП). Каждый пиксел буфера кадра должен быть считан и преобразован, прежде чем он будет отображен на растровой ЭЛТ. Цвета или полутона серого цвета могут быть введены в буфер кадра путем использования дополнительных битовых плоскостей. Интенсивность каждого пиксела на ЭЛТ управляется содержимым соответствующих пикселов в каждой из N битовых плоскостей. В соответствующую позицию регистра загружается бинарная величина (0 или 1) из каждой плоскости. Двоичное число, получившееся в результате, интерпретируется как уровень интенсивности между 0 и 2N-1. С помощью ЦАП это число преобразуется в напряжение между 0 (темный экран) и 2N-1 (максимальная интенсивность свечения). Всего можно получить 2N уровней интенсивности.

Поскольку существует три основных цвета, можно реализовать простой цветной буфер кадра с тремя битовыми плоскостями, по одной для каждого из основных цветов. Каждая битовая плоскость управляет индивидуальной электронной пушкой для каждого из трех основных цветов, используемых в видеотехнике. Три основных цвета, комбинируясь на ЭЛТ, дают восемь цветов. Эти цвета и соответствующие им двоичные коды приведены в табл. 1.1. Схема простого цветового растрового буфера кадра показана на рис. 1.1.

  Красный Зеленый Синий
Черный 0 0 0
Красный 1 0 0
Зеленый 0 1 0
Синий 0 0 1
Желтый 1 1 0
Голубой 0 1 1
Пурпурный 1 0 1
Белый 1 1 1

Таблица 1.1. Цветовые комбинации для простого буфера кадра с тремя битовыми плоскостями.

 


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.042 с.