Символы зеркально отображаются относительно вертикальной
Центр вращения вычисляется как
<nStart> +4.
Код направления вращения 2
Символы зеркально отображаются относительно вертикальной оси (оси Y).
Указывать параметры <nPixelHeight> и <nStart> не требуется, поскольку
зеркально отображаются биты в каждом байте.
Код направления вращения 3
Символы зеркально отображаются относительно горизонтальной оси (оси
Х). Параметр <nPixelHeight> должен быть указан, а параметр <nStart> не
используется, так как область поворота охватывает всю высоту символа.
Комбинации
Так как режимы с 1 по 3 обеспечивают все три оси поворота, то
многократный вызов функции позволяет комбинировать операции вращения и
создавать требуемые повернутые и зеркально отраженные символы.
Примечания
. Шрифтовая строка всегда обрабатывается целиком. Если требуется
преобразовать лишь часть символов, то это легко осуществить при
неполной загрузке в видеоадаптер нового шрифта функцией SETFONT().
. Для повышения скорости работы передачу шрифтовой строки в функцию
можно осуществлять по ссылке (@<cFontString>), предварительно отменив
возврат значения вызовом CSETREF(.T.).
Примеры
. Заполнение экрана символами, а затем их поворот, что особенно
показательно для VGA-адаптера в режиме 50 строк с матрицей изображения
8х8, где символы не будут обрезаться.
Все параметры задаются в форме, позволяющей применять их и для других
пиксельных отношений:
CSETREF(.T.) // Оптимизация (при передаче
// параметров по ссылке)
nMODE := GETSCRMODE() // Сохранение видеорежима
VGA50()
FOR i := 0 TO MAXROW() // Заполнение экрана
@ i, 0 SAY CENTER("ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890")
NEXT i
nPixel := CHARPIX() // Определение высоты шрифта