Наведите на путь истинный: масштабирование текста
От: llirik  
Дата: 25.05.05 19:09
Оценка:
Вывожу через DrawText текст в окошко,
через GetDeviceCaps получаю размеры экрана, отношения пикселей к милиметрам
высчитываю нужную высоту шрифта в пикселях по заданной высоте в мм

нужно чтобы текст всегда вписывался в определенный прямоугольник и пропорции текста и прямоугольника сохранялись при масштабировании. С прямоугольником проблем нет, а вот с текстом...

Под масштабированием естественно понимаю изменнение масштаба выводимой картинки (текст и линии)

режим отображения MM_TEXT

кто-нибудь масштабировал текст, выводимый через DrawText, играя размерами шрифтов?
... << RSDN@Home 1.1.4 beta 7 rev. 454>>
Мне твоя Москва нравится, и обратно в Россию я не вернусь! (с) мыльная о.
Re: Наведите на путь истинный: масштабирование текста
От: Кодт Россия  
Дата: 28.05.05 07:12
Оценка: 1 (1)
Здравствуйте, llirik, Вы писали:

L>нужно чтобы текст всегда вписывался в определенный прямоугольник и пропорции текста и прямоугольника сохранялись при масштабировании. С прямоугольником проблем нет, а вот с текстом...


Я делал так:
Пусть нужно вписать текст в габариты x,y — для этого найдём кегль k.
1) создавал шрифт большого кегля k0 и измерял габариты текста x0,y0.
2) находил из пропорции k1 = min(k0*x/x0,k0*y/y0)
3) создавал шрифт кегля k1 и проверял, подходит ли он (обычно из-за целочисленных округлений и кернинга с трекингом размеры гуляют) — x1,y1
4) если x1,y1 << x,y — то инкрементировал и повторял; если x1>x||y1>y — декрементировал и повторял
Обычно на 3-4 итерацию получался более-менее приемлемый вариант.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.