Главная > Разное > Принципы программирования в машинной графике
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.4. ОКНА И ОБЛАСТИ ВЫВОДА

Часто встречаются ситуации, когда требуется вычертить объекты, размеры которых заданы в единицах совершенно несовместимых с экранной системой координат. Например, размеры здания могут быть в сотни раз больше размеров желаемого изображения. С другой стороны, молекула в реальности значительно меньше ее изображения на картинке. Наконец, имеются такие приложения, в которых объект является не какой-либо физической реальностью, а лишь графическим представлением соотношений между некоторыми значениями, например, на рис. 2.6 показана динамика доходов некоей фирмы в начале двадцатого века.

Проблемно-ориентированные размеры выражаются в так называемых мировых координатах. На рис. 2.6 числа 1901, 1902,

Рис. 2.6. Столбчатая диаграмма в окне

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

Очевидно, что размеры и положение окна определяются в системе мировых координат. Эти значения могут показаться неожиданными для читателя, поскольку окно вводится для определения желаемого изображения на картинке и, на первый взгляд, более приемлемым было бы задать эти значения в дюймах, чем указать какое-то фиктивное значение дохода, равное в качестве минимального значения по оси у. Однако задание окна в системе мировых координат является обычным и очень Удобным на практике.

Необходимо также задать прямоугольную область на экране, которая определит размеры желаемой картинки. Эта область называется областью вывода. Она задается аналогично окну, то есть указываются минимальные и максимальные значения по

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

Хтгйп

Теперь окно нужно отобразить на область вывода. Например заданное значение в мировых координатах должно бьпп преобразовано в экранную координату Вначале вычисля ются коэффициенты масштабирования по осям:

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

Закончим этот параграф тремя замечаниями:

1. Окно совсем не обязательно должно охватывать весь объект целиком. Если оно не охватывает весь объект, то части екта, находящиеся вне окна, не вычерчиваются — они дол быть отсечены. Эта операция носит название отсече ние, более подробно она обсуждается в параграфе 2.5.

2. В общем случае коэффициенты различны. Для столб чатой диаграммы это как раз то, что надо. Но совсем не дится, когда угловые соотношения на изображении должнь быть точно такими же, как на объекте. В этом случае в честве коэффициента масштабирования следует выбрать наименьшее из значений Поэтому рекомендуется

заменить выражение (2.12) на формулы, основанные на пересчете координат относительно центров окна и области вывода. Это будет описано в параграфе 2.6.

3. Размеры и положение окна не всегда известны заранее. В параграфе 2.6 будет показан способ их вычисления вместо задания пользователем.

<< Предыдущий параграф Следующий параграф >>
Оглавление