1 прогон. Выполнить подпрограмму рисования, но фактически не рисовать, а только вычислять экстент. Затем установить окно.

2 прогон. Снова выполнить подпрограмму, уже с рисованием.

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

Предположим, что форматное соотношение мирового окна известно и равно К, а экранное окно имеет ширину IV и высоту Я. Теперь следует рассмотреть отдельно два случая: мировое окно может иметь большее форматное соотношение, чем экранное окно (/? > 1У/Я), или, наоборот, меньшее форматное соотношение (Я < \¥/Н). Оба этих случая показаны на рис. 3.13. Мы рассмотрим их поочередно.

Возможные форматные соотношения для мирового и экранного окон

Рис. 3.13. Возможные форматные соотношения для мирового и экранного окон: а) к > \Ы/Н; б)Я< №УН

Случай а): К> \¥/Н. Здесь мировое окно короче и толще, чем экранное окно, следовательно, порт просмотра с таким же форматным соотношением /? целиком поместится по ширине экранного окна, однако вверху и/или внизу останется некоторое неиспользованное пространство. Поэтому наибольший порт просмотра будет иметь ширину V/ и высоту №/И и его можно задать с помощью следующей команды (убедитесь, что этот порт просмотра действительно имеет форматное соотношение К): Случай б): К < ¥//Н. Здесь мировое окно выше и уже, чем экранное окно, следовательно, порт просмотра с таким же форматным соотношением Я расположится сверху донизу экранного окна, однако справа и/или слева останется неиспользованное пространство. Поэтому наибольший порт просмотра будет иметь высоту Я, а длину ЯК; это устанавливается следующей командой: зетеирогШ. Н * Я. 0. Н): Пример 3.2.7. Высокое окно Пусть форматное соотношение окна составляет Д = 1,6, а экранное окно имеет высоту Я - 200 и ширину "/=360, отсюда 1У/Я= 1,8. Следовательно, имеем случай б), и порту просмотра назначается высота 200 пикселов и ширина 320 пикселов.


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