Опубликовано: 2020-04-02 08:00:00
Рисовалка для «ленивых»
Часто (по крайней мере когда я учился еще в школе) у меня возникала необходимость чего-либо нарисовать на языке Basic. Все знают, что это достаточно просто и что это долгая нудная работа – сидеть и считать координаты. Не стану обобщать, короче говоря процесс не доставляет.
Чтобы успростить этот процесс, я нашел на просторах интернета программу-рисовалку примитивами для последующего экспорта в в виде кода на языке Basic. Программа, которую мы рассмотрим, позволяет разместить стандартные графические примитивы и сохранить всё это дело в код программы на бейсике.
Скачать программу Redact можно по следующим ссылкам, например, тут и тут. Также, при желании, можно найти и более свежие версии этой программы. Скомпилированные исходники также оставлю и на этом сайте по этой ссылке.
Примечание: На некоторых конфигурациях возникает проблема с вертикальной синхронизацией,поэтому в архиве 2 *.EXE файла один с VSync'ом, второй - без, исходник правьте сами.
Программа имеет следующие режимы работы:
- Рисование линии;
- Рисование прямоугольника;
- Рисование окружности;
- Рисование закрашенного прямоугольника;
- Рисование эллипса;
- Монтирование точки закрашивания области;
- Режим выделения примитивов и их передвижения;
- Режим просмотра полностью построенной(+PAINT) картинки.
По умолчанию при редактировании программа не производит закраску областей (PAINT).
Для того чтобы увидеть полностью построенную картинку нужно перейти в соответствующий режим просмотра (F5 ).
После каждого установленного примитива программа сохраняет BACKUP файл (BACKUP.BAS).
Управление
TAB основное меню (Вкл/Выкл)
В меню опции выбираются ЛКМ, цвета – ЛКМ и ПКМ
ENTER – Сохранить в файл RIS_01.BAS и RIS_01.PAS
SPACE – Загрузить из файла RIS_01.BAS
При загрузке понимает LINE с координатами + опциями B и F (прямоугольник, закраска),
CIRCLE с координатами, радиусом, цветом, углами старта/конца и аспектом.
Определяет PAINT с 2-мя параметрами: цветом закраски и цветом границы.
ESC – выход из программы, а при рисовании – отмена текущего примитива.
BACKSPACE – Удаление последнего нарисованного примитива.
Стрелки вверх / вниз, влево / вправо – подвинуть последний примитив на пиксель в соотв. клавише сторону
F5 – Режим просмотра полностью построенной картинки
F6 – Сохранить полностью построенное изображение в файл RIS_01.BMP
F12 – Скриншот редактора в файл REDACT.BMP
В режиме обводки (выбрана обводка):
ЛКМ (нажать и удерживать) – начать выделение, отпустить ЛКМ - закончить выделение.
ПКМ (нажать и удерживать) – перенос объекта мышью.
Стрелки вверх / вниз, влево / вправо – подвинуть весь объект на пиксель в соотв. клавише сторону
В режиме рисования (выбран примитив):
ЛКМ (нажать и удерживать) – позиционирование примитива
Основной входной-выходной формат программы: *.BAS.
Дополнительные форматы для экспорта: *.PAS*, *.BMP.
Результаты работы программы

Рисунок 1 – Результат выполнения программы с навигационным меню

Рисунок 2 – Результат выполнения программы без навигационного меню
Программа может быть несовместима с некоторыми версиями Windows (я проверял только на Windows 8, 8.1, 10) и при запуске будет выдавать ошибку:

Рисунок 3 – Ошибка при запуске Redact на Windows 8
Так же я заметил, что в QB64 программа также не запускается.
В таком случае необходимо использовать различные эмуляторы PC для MS-DOS. Лично мне нравится DOSBox. Ниже представлена работа нашей программы в DOSBox'е:

Рисунок 4 – Выполнение программы Redact в эмуляторе DOSBox
Если вы используете эмулятор DOSBox, то для перехвата управления мышкой в эмуляторе используйте сочетание клавиш CTRL + F10.
На мой взгляд, проект от >Quiet Snow< замечательный, за что ему отдельное большое спасибо. Теперь, эта программа может стать достойным ответом для всех страждущих, которым нужно срочно нарисовать что-то в QBasic. =)
Спасибо за прочтение этой статьи.