Френсис Хилл

3.2. Мировые окна и порты просмотра Как определить А, В, Си £>? Сначала рассмотрим преобразование для х. Как видно из рис. 3.5, пропорциональность требует, чтобы разность (хг-У./) составляла ту же долю от разности (Кг-УД которая составляет величина (х-№.Г) от величины (\V.r-WJ), следовательно: бх-УІ _ х-УУ.1 Ух-VI ~ УУх-\У1

или Ух - VI („, Ух-У.1 „Л

ях = -х + У.1--\У1 .

\Vx-WI У \Vx-WI }

Обозначив множитель при х буквой А, а свободный член - буквой С, получим:

_ Ух-У.1 УУх-1¥.1

и С = V1 - А\¥1.

Подобным же образом пропорциональность для у означает, что Бу-УЬ _ у-УУ.Ъ Уі-УЬ ~ 1¥1-1¥Ъ'

а запись ву в виде Ву + О требует соотношений У1-УЬ

В = , Б = УЪ-В\¥Ь.

УУ1-\У.Ъ

В результате мы имеем следующие формулы преобразования мирового окна в порт просмотра: £с - Ах + С

и

їу=Ву + Д

где А =Ух-У1 с = у1_АШ (3-3) \Vx-WI

в = ул ¥ъ, о = у.ь-в^ь.

ИЛ/-ИЛА

Это преобразование можно использовать для любой точки (х, у) внутри или вне окна. Точки внутри окна преобразуются во внутренние точки порта просмотра, а точки вне окна - в точки вне порта просмотра. Следует тщательно сверить следующие свойства этого преобразования, используя равенства (3.3):

1. Если х находится на левом краю окна (х = то яг находится на левом краю порта просмотра (я* - V.!);

2. Если х - на правом краю окна, то - на правом краю порта просмотра.

3. Если х составляет/-ю часть от ширины окна, то яд: является/-й частью от ширины порта просмотра.

4. Если х находится вне окна слева от него (х < 1У./), то яд: также находится вне порта просмотра слева (хг < V./), и аналогично в случае, когда х вне окна справа от него.

Проверьте аналогичные свойства для преобразования г/ в яг/.

Глава 3. Дополнительные инструменты для рисования Пример 3.2.1

Рассмотрим окно и порт просмотра, изображенные на рис. 3.6. Окно имеет размеры (и7./, У/.г, У/.Ь, ¥/.г) = (0,2,0, 0,1,0), а порт просмотра - (К/, У.г, У.Ь, У.г) - (40, 400, 60, 300).

Френсис Хилл

Рис. 3.6. Пример окна (а) и порта просмотра (б)


⇐ Предыдущая| |Следующая ⇒