Axiom Справочник языка

Оператор

Оператор WINDOW

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

Логическая шкала и экран

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

Оператор требует графического режима SCREEN 1..10. Перед настройкой логической шкалы откройте экран оператором SCREEN: сам оператор WINDOW окно не создаёт.

Синтаксис

WINDOW
WINDOW SCREEN (<левый операнд>, <верхняя граница>)-(<правый операнд>, <нижняя граница>)
WINDOW (<левый операнд>, <верхняя граница>)-(<правый операнд>, <нижняя граница>)

Аргументы

ЧастьОписание
<левая граница>, <верхняя граница>, <правая граница>, <нижняя граница>Передайте две противоположные вершины логического прямоугольника.
SCREENСлово SCREEN сохраняет экранное направление оси Y, то есть увеличение Y вниз.

Что делает оператор WINDOW

Вызов без аргументов отменяет логическую шкалу и возвращает координаты текущей области VIEW. Форма со словом SCREEN сохраняет экранное направление оси Y, а в форме без этого слова увеличение Y направлено вверх, как в математической системе координат.

Все четыре координаты приводятся к DOUBLE. Они должны быть конечными и задавать ненулевые диапазоны обеих осей; нулевая ширина или высота логической шкалы сообщает MB3007. Единицу логической шкалы выбирает программа, и она не обязана совпадать с пикселем. WINDOW изменяет преобразование последующего рисования, сохраняя уже нарисованные пиксели.

Порядок с VIEW и PMAP

Сначала оператором VIEW выбирают физическую область экрана. Затем оператором WINDOW задают шкалу, которая отображается в эту область.

Настроенную шкалу используют PSET, PRESET, LINE, CIRCLE, PAINT, DRAW и форма POINT(x, y). Чтобы получить отдельную физическую или логическую координату явно, вызовите PMAP с нужным селектором.

Без активного SCREEN 1..10 оператор завершается диагностикой MB3010.

Диагностика

  • MB3010: оператор WINDOW вызван без активного графического режима SCREEN 1..10.
  • MB3007: границы логического окна имеют недопустимое значение или вырождают логический прямоугольник.

Пример

SCREEN 1
VIEW SCREEN (10, 10)-(20, 20)
WINDOW SCREEN (100, 200)-(110, 210)

PSET (100, 200), 12
PRINT PMAP(100, 0); ","; PMAP(200, 1)
SLEEP

Диапазоны 100..110 и 200..210 отображаются в выбранную физическую область, поэтому аргументы оператора PSET обозначают точку логической шкалы. Вызовы PMAP показывают, как эта же точка выражается в физических координатах области.

Запускаемые примеры

Перечисленные программы проверяют направление оси и преобразование координат. Их можно открыть и запустить в Electron IDE.

См. также