Оператор
Оператор 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.