Поиск:

Ответ в темуСоздание новой темы Создание опроса
> логические и физические координаты 
:(
    Опции темы
mrgloom
Дата 27.5.2014, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



допустим есть текст который задаётся структурой LOGFONT 

как объясняется эта формула?
Цитата

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);


написано что задаётся в logical units, как я понял на перевод из logical в device влияет mapping mode, а так же возможно смещение координат, т.е. если я ничего не применяю, то logical unit= device unit?
И что делать если я применяю mapping mode например сжал по Y в 2 раза, как мне потом эту информацию выцепить при выборе размера шрифта.

я рисую на изображении, которое потом сохраняю в файл и мне надо проставить высоту текста в % от высоты изображения.

еще непонятно что имеется ввиду при dc.GetDeviceCaps(LOGPIXELSY)

Цитата

LOGPIXELSY
Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors.


что значит
Цитата

Number of pixels per logical inch

что такое logical inch? разве логические координаты не абстрактные?



Это сообщение отредактировал(а) mrgloom - 27.5.2014, 10:50
PM MAIL   Вверх
Amp
Дата 27.5.2014, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



Объясняется стандартной формулой перевода размера шрифта из поинтов в пиксели. Font size (px) = size (pt) * dpi (y) / 72. Логический дюйм нужен для форсирования (масштабирования) размеров шрифтов на мониторе, играет роль некоторого коэффициента. Потому что пользователю не важно соответствие размера шрифта на мониторе реальным физическим величинам, ему важно, чтобы шрифт на его мониторе с конкретным разрешением выглядел нормально и читабельно. По-умолчанию в Windows выставлен в 96.
PM MAIL   Вверх
mrgloom
Дата 27.5.2014, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Цитата

Объясняется стандартной формулой перевода размера шрифта из поинтов в пиксели

что такое поинт? и почему 72?

как я себе это представляю, в логических координатах у нас может быть сколько угодно единиц, хоть 60000 х 60000 (или всё наоборот нормировано в диапазоне [0 1]), в физических же координатах мы имеем совершенно определенные цифры, как разрешения экрана 1280 х 1024 , в моём же случае это размер изображения m x n пикселей.   
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1107 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.