Главная > Принципы программирования в машинной графике
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

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 будет показан способ их вычисления вместо задания пользователем.

1
Оглавление
email@scask.ru