понедельник, 5 июля 2010 г.

Исправление ошибки масштабирования в SWTBCanvasFont

Потребовалось мне использовать пакет вывода текста в векторном формате совместно с графикой. Я воспользовался проектом SWTBCanvasFont. И вот на что я обратил внимание: если буквы увеличены, то они узкие, а если уменьшены, то широкие. При единичном масштабе искажений нет. Я нашёл ошибку в коэффициентах матрицы трансформации. Привожу скриншот исправления файла SWTBCanvasText:

Надеюсь, различия видны. И, напоследок, привожу результат сравнения результатов вывода оригинального и исправленного кода.

Слева в окне то, что было. Справа то, что стало. Заметно, что справа пропорции букв (отношение высоты к ширине) не зависят от масштаба, который варьирует от 2,0 до 0,5.