Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пиксели и сантиметры [D7, Win95/98, WinXP]


Страницы:   1 2 3 4

apic ©   (2006-08-18 17:52:00) 

Мне нужно нарисовать на экране например прямоугольник 10х5 см , в натуральную величину, но в прграммировании графики, насколько я знаю все в пикселях, Так вот может кнонибудь подкинуть ф-ции преобразования пикселейв сми наоборот


Мефисто   (2006-08-20 14:06:00) [21]


> хм...   (20.08.06 13:49) [52]



> как бы практически совпадает...


Вот имено, что как бы :)
Может совпадение?

Мы вот с АП - ЭЛТ мониторы тестили. Размеры скачут как хотят.
Оно же как вроде должно быть константа :)


хм...   (2006-08-20 13:49:00) [22]


> Произвел проверку
> procedure TForm1.TntButton1Click(Sender: TObject);
> begin
>  TntLabel1.Caption := IntToStr(GetDeviceCaps(GetDC(Handle),
> HORZSIZE));
>  TntLabel2.Caption := IntToStr(GetDeviceCaps(GetDC(Handle),
> VERTSIZE));
> end;
> При разрешении 1920*1200 получил 512*320 что не совсем то,
>  но близко
> При разрешении 1600*900 получил 520*292 что то фантастическое
> При разрешении 1280*1024 получил 400*320 что то резко сжался
> монитор
> При разрешении 800*600 получил 426*320 что то совсем не
> в порядке с моим монитором, физические размеры гуляют куда
> угодно
>
> Как сказал Прудков, не верь глазам своим. Дальше будешь
> песни петь про DDC

а я проверил на ноутбуке:
при режиме 1024*768: 320*240
при режиме 800*600: 320*240
как бы практически совпадает...
линейкой мерил: 305*230...


Мефисто   (2006-08-20 13:22:00) [23]


> McSimm ©   (20.08.06 13:00) [50]



> Это и не пиксели вовсе. Пиксель отрисовывается несколькими
> ячейками матрицы монитора.


Я и писал физическийпиксель монитора подразумевая эту самую ячейку :) А не тот пиксель, который представляется системой. Треп то в ветке пошел с Pavia  © узнаем мы вызические размеры в мм или нет. Т.к. по мнению Pavia  © в мониторе эти физические данные содержаться и виндовс может получить к ним доступ.


> Компьютер не имеет никаких дел с "физическими пикселями".


Уже писал об этом и не раз, еще в предыдущей ветке на это наставлял.
Повторил об этом еще постом выше:


> Ибо системе пофиг на физический размер пикселя (и межпиксельный
> шаг) монитора. Для системы главное получить список поддерживаемых
> разрешений для монитора дабы корректно с данным устройством
> общаться.


Пример с матрицей физических пикселей монитора привел, чтобы дать понять человеку, что из-за разных характеристик этой матрицы (размер ячейки и шаг между ячейками) невозможно получить реальный размер, даже если бы существовали мнимые сведения о физических характеристиках монитора описываемые Pavia  ©.


McSimm   (2006-08-20 13:00:00) [24]

> пиксели монитора чаще всего расположены в шашечном порядке.

Не довод.
Компьютер не имеет никаких дел с "физическими пикселями".
Это и не пиксели вовсе. Пиксель отрисовывается несколькими ячейками матрицы монитора.
Координатная сетка XY верна независимо от физического устройства отображающей поверхности.


Мефисто   (2006-08-20 12:32:00) [25]


> Anatoly Podgoretsky ©   (20.08.06 11:48) [48]


Про что всем форумом и разжевываем несчастному :)

Ибо системе пофиг на физический размер пикселя (и межпиксельный шаг) монитора. Для системы главное получить список поддерживаемых разрешений для монитора дабы корректно с данным устройством общаться.

Pavia  ©   (20.08.06 01:24) [44]

Могу еще загвостку подкинуть. Непомню какая компания реализовала следующую технологию для ЭЛТ мониторов. NEC или Sony. Подзабыл как данная технология называлась. Суть в том, что для улучшения качества изображения, физические пиксели монитора имели форму немного вытянутого элипса. И как теперь подсчитывать визический размер сие пикселя? :) Это раз.

Если обратите внимание, то заметите, что пиксели монитора чаще всего расположены в шашечном порядке. (У кинескопов для телевизоров к примеру, эти физические пиксели чаще всего расположены в шахматном порядке). Вот, физические пиксели монитора расположены в шашечном порядке, как опять точно получить размер? Ведть координатная сетка X и Y для вычисления положения пикселя уже не совсем верна. Это два.

На прилавках уйма всяких мониторов. У многих из них свои физические характеристики, разная технология изготовления. Если бы под каждый пришлось подстраиваться в милемтры и сантиметры, чтобы из себя представляла ОС и был бы такой широки выбор мониторов? Это три.


Anatoly Podgoretsky   (2006-08-20 11:48:00) [26]

Произвел проверку
procedure TForm1.TntButton1Click(Sender: TObject);
begin
 TntLabel1.Caption := IntToStr(GetDeviceCaps(GetDC(Handle),HORZSIZE));
 TntLabel2.Caption := IntToStr(GetDeviceCaps(GetDC(Handle),VERTSIZE));
end;

При разрешении 1920*1200 получил 512*320 что не совсем то, но близко
При разрешении 1600*900 получил 520*292 что то фантастическое
При разрешении 1280*1024 получил 400*320 что то резко сжался монитор
При разрешении 800*600 получил 426*320 что то совсем не в порядке с моим монитором, физические размеры гуляют куда угодно

Как сказал Прудков, не верь глазам своим. Дальше будешь песни петь про DDC


Anatoly Podgoretsky   (2006-08-20 11:23:00) [27]

Верить не запретишь.


Мефисто   (2006-08-20 08:39:00) [28]


> Pavia ©   (20.08.06 01:24) [44]


Попробуйте-ка получить возвращаемы значения при разных разрешениях дисплея:


>  vsiz := GetDeviceCaps(h,VERTSIZE);  {display height in
> mm}


Раз по твоему мнению, винда получает точные значения от монитора, то почему при разных разрешениях дисплея вылазят разные цифры? Динамически меняются физические размеры монитора? :)))

Это, так, еще раз тебе на засыпку, чтобы развеять миф в который ты веришь. Получить точные СМ для монитора не реально, придется все время подбивать некий коэффициэнт. А вот для принтеров, можно получить точный расчет.


Мефисто   (2006-08-20 01:26:00) [29]


> Pavia ©   (20.08.06 00:53) [40]



> Другая часть засекречена.


Кто этот жадный подлец? :)


> Разве, что еще могу добавить, что в 2000 году стандарт изменился.
>  И теперь можно осуществлять контроль над монитором. Имеется
> в виду делать с монитором то, что можно сделать с кнопок
> находящихся на мониторе.


Скорее не изменилось, а кое что дополнилось.


> Осталось узнать разрешение и сделать перерасчет.


И так для каждого девайса будем коэффициенты подбивать?


> Еще могу добавить если не верите мне то возьмите: линейку,
>  рулетку, или сантиметр и померьте.


Взял, померил. Результат приблизительно, так попадает. Но с моей линейкой, чего-то погрешность более 1,5-2 см. Толи моник у меня кривой, толи линейка :)


Pavia   (2006-08-20 01:24:00) [30]

Если хотите подробней вам на www.vesa.org только там мало информации лежит в открытом доступе. Советую искать пословам EDID(EXTENDED DISPLAY IDENTIFICATION DATA) и DDC (Display Data Channel).


McSimm   (2006-08-20 01:20:00) [31]

> Про USB на мониторе, мало что знаю.

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

Жаль, что они не научились делать этого по стандарту, который изменился с 2000 года :)


Pavia   (2006-08-20 01:01:00) [32]

Еще могу добавить если не верите мне то возьмите: линейку, рулетку, или сантиметр и померьте.

Про USB на мониторе, мало что знаю. Но выступает в качестве улучшения дизайна, для того чтобы всяки та Flash накопители могильники было проще подключать, к компьютеру.


McSimm   (2006-08-20 00:56:00) [33]

> И теперь можно осуществлять контроль над монитором. Имеется
> в виду делать с монитором то, что можно сделать с кнопок
> находящихся на мониторе.

Жаль производители мониторов об этом до сих пор не знают и лепят зачем-то дополнительный USB интерфейс для этих целей.


Pavia   (2006-08-20 00:53:00) [34]


> Ну поделитесь уже конкретной информацией.
> Всем уже жуть как интересно.

Я поделился все информацией, которую имею в наличии. Другая часть засекречена.
Разве, что еще могу добавить, что в 2000 году стандарт изменился. И теперь можно осуществлять контроль над монитором. Имеется в виду делать с монитором то, что можно сделать с кнопок находящихся на мониторе.

Есть монитор он соединен с видео картой. Видео карта может не только выводить информацию на монитор, но прочитать информацию с монитора о его характеристиках. одной из такой характеристик является размеры изображения на мониторе по горизонтали и вертикали в сантиметрах и если доступна более детальные данные то и в миллиметрах. Вот эти значение и получаются при помощи следующих директив.
 hsiz := GetDeviceCaps(h,HORZSIZE);  {display width in mm}
 vsiz := GetDeviceCaps(h,VERTSIZE);  {display height in mm}

Осталось узнать разрешение и сделать перерасчет.


Мефисто   (2006-08-20 00:42:00) [35]


> Pavia ©   (20.08.06 00:34) [37]


Ну поделитесь уже конкретной информацией.
Всем уже жуть как интересно.


DesWind   (2006-08-20 00:41:00) [36]


> DesWind ©   (20.08.06 00:18) [33]

До этого я не понимал филосифии единиц измерения. ))))


Pavia   (2006-08-20 00:34:00) [37]


> И по какому каналу ? RGB ?

Нет канал DDC (или другое название I2C). Стандартый интерфейс для всех мониторов от 1994 года.

А ну это надо смотреть на устройство и копаться в ядре виндоуса, что он там вернет в случаи не получения параметров монитора.


Anatoly Podgoretsky   (2006-08-20 00:31:00) [38]

McSimm ©   (20.08.06 00:24) [35]
Даже проще Standard Monitor


McSimm   (2006-08-20 00:24:00) [39]

> Нет, телевизор не имеет обратной связи с компьютером.

А какие мониторы имеют ?
И по какому каналу ? RGB ?


> На два монитора можно подавать 2 разные картинки.

Речь не о том, несложное устройство позволяет от одного выхода отображать картинку на несколько устройств. Какую информацию будет "знать Windows" в этом случае ?


Мефисто   (2006-08-20 00:20:00) [40]


> То, что вы говорите это DPI и оно может быть произвольным.


Несовсем...


> Но это относиться больше к шрифтам. Или же для переноса
> данных с одного устройства на другое, для правильного масштабирования.
>


???


> В мониторе записаны его параметры. Они указываются либо
> в сантиметрах либо более точно в миллиметрах.


Это уже по какому кругу? :)


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо