Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Матричный метод






Движение объекта отображается на экране как перемещение видеосимвола S, представленного некоторым подмножеством множества точек квадратной n x n матрицы пикселей. В равноотстоящие дискретные моменты времени tk (k = 1, 2,...) на вход программы управления движением символа поступают координаты точки Р 2 (х 2, у 2), в которую символ S должен быть перемещен из предыдущей точки Р 1 (х 1, у 1). Задача состоит в том, что необходимо переместить символ S из точки Р 1 в точку Р 2 и повернуть продольную ось символа на новое направление движения вдоль вектора с минимально возможным использованием вычислительных ресурсов. При этом движение должно происходить без деформации символа S (требование константности формы).

Введем две системы координат: основную ОХY, ось ОХ которой свяжем с нижней, а ось ОY - с левой границами экрана и О ' Х ' Y ' – систему для задания новых координат точек символа, изменившего ориентацию своего движения на определенный угол (рис.4.1.2, а и рис.4.1.2, б).

Обе координатные системы - декартовы прямоугольные с одинаковыми масштабами по всем четырем осям. Расположим квадратную n x n матрицу-носитель символа так, что точка пересечения ее диагоналей находится в центре О ' дополнительной системы координат О ' Х ' Y '. Тогда положение и конфигурация символа определяются заранее заданными координатами некоторых точек матрицы в системе X ' O ' Y '. Конфигурацию символа предполагаем симметричной относительно его продольной оси, а центром изображения S считаем точку О'. Обозначим точками Р 1(х 1, у 1) и Р 2(х 2, у 2) предыдущее и последующее положения центра символа. Символ считаем расположенным в точке Рi (хi, уi), если его центр О ' находится в точке Рi (хi, уi).

Перенести символ S в точку Р 2(х 2, у 2) означает воспроизвести его в этой точке так, чтобы центр О ' имел координаты (х 2, у 2), а продольная ось символа совпала с направлением вектора . Такое движение достигается параллельным переносом системы координат Х'О'Y' в точку Р 2(х 2, у 2):

 

х = х ' + х 2; у = у ' + у 2 (4.1.1)

и поворотом ее на угол φ:

 

х = х' соs φу' sin φ, y = х' sin φ + у' соs φ.   (4.1.2)

 

 
Здесь

φ = arctg (y 2y 1)/(x 2x 1) (4.1.3)

 

- угол наклона прямой к горизонтали.

a)

 

б)

 

Рис. 4.1.2. Графическое отображение матрицы и символа

в координатах ОХУ и О'Х'У'.

 

Рис.4.1.2. Графическое отображение симметричных точек символа в координатах (X'O'Y').

X1

Одновременный перенос и поворот описывается преобразованием:

х = х' соs φу' sin φ + x 2; y = х' sin φ + у' соs φ + y 2. (4.1.4)  

 

В (2.4) х 2, у 2 — координаты нового начала, х, у — координаты точки М (образа), х ', у ' — координаты точки М' (прообраза точки М). Координаты (х ', у ') являются постоянными и задаются при исходном положении символа.

Чтобы найти новые координаты одной точки символа надо выполнить 8 арифметических операций (4.1.4) и 3 операции (4.1.3) – 11 операций (предполагаем, что тригонометрические функции sin φ, cos φ, arctg φ не вычисляются, а считываются из таблиц).

Для размера матрицы n x n, равному 10 х 10, т.е. 100-точечного символа это потребует 1100 операций. При быстродействии видеоконтроллера 40 МГц на воспроизведение такого символа на очередном шаге будет затрачено около 3 миллисекунд: 2, 5 х 10-6 х 1, 1 х 103 = 3 мс, что недопустимо в подавляющем числе применений. Это объясняется тем, что размер матрицы достигает, как правило, больших размеров, поворот осуществляется пошагово, чтобы обеспечить плавность, последовательно на несколько углов, составляющих этот поворот, а количество символов может составлять десяток и более.

Очевидно, что затраты памяти на хранение одного символа существенно сокращаются тогда, когда он определен только точками, задающими его конфигурацию. Причем число матриц с «записанными» его конфигурациями должно быть столько, сколько предусмотрено угловых шагов при отображении его вращения. При этом, в соответствии с курсом, надо успевать рассчитывать, согласно (4.1.1) на каждом шаге новые координаты центра матрицы.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.