English | Русский  

RSS feed

Star Family Blog

|
08/01/2005 20:56

Ну, вот и Пифагор пригодился...

Posted by VladStar

Сегодня писал программу-эксперимент для тестирования. Суть тестирования заключается в том, что объекту тестирования показывают небольшой трехсекундный видеоролик, после чего справа или слева появляется черный квадрат, заметив который объект должен нажать одну из двух кнопок - "лево" или "право". Засекается время реакции и правильность ответа. И так около сотни раз, с разными клипами. После чего подсчитываются некоторые величины, типа среднего времени реакции и верности ответов - и все это заносится в базу.

Ну да ладно, речь не об этом. А о том, что упомянутый выше квадрат по условиям эксперимент должен был появляться ни много, ни мало, а в 12.5 см от центра экрана. Слева или справа, соответственно. Самый простой метод был примерно подобрать нужное кол-во пикселов смещения от центра, запихать их в переменную, и... в общем, просто забить на расчеты и сделать халявно. :-) Другое дело, что оно разумеется будет работать только при определенном разрешении экрана и размере монитора. Знаю, что мне было неохота каждый раз бегать и подбирать значение пиксельного смещения для разных условий, потому решил рассчитать.

Итого, имеем: размер монитора в дюймах (17"), разрешение экрана (1024x768) и заданные 12.5 см от центра.

Нужно высчитать кол-во пикселов, на которое нужно делать смещение от центра экрана.

Те, кому интересно - могут на этом месте начать выписывать формулы. Остальные - читайте ниже. :-)



1) В одном дюйме 2.54см.
2) Сходу приходит в голову - 1024/2+-1024/(17*2.54)*12.5. Получается... полная фигня, квадрат от центра на расстоянии большем, чем 12.5см. Начинаю думать (иногда бывает полезно :) ). Вот же идиот... скрестил ежа с ужом, точнее - диагональ монитора с горизонтальным разрещением экрана.
3) Встает вопрос, как высчитать горизонтальный размер монитора при известной диагонали... кто-то (кто уже сталкивался с этим) даст ответ сходу, мне же пришлось еще раз подумать.
Ага... отношение сторон обычного монитора - 4:3... ага, прямоугольный треугольник... Эврика, конечно же Пифагор ! :) Начинаем выводить...
(4*x)^2+(3*x)^2=y^2, где x - некая кратная величина, а y - диагональ монитора.
16*x^2+9*x^2=y^2
y=sqrt(25x^2)=5x
аааа, блин, отношение сторон монитора к диагонали - 4/5 и 3/5 от его диагонали...

В общем, когда я вывел это отношение, меня разобрал просто истерический смех... :)))

З.Ы. Результат, понятно превзошел все ожидания по точности. :-) 1024/2+-1024/(17*4/5*2.54)*12.5
Понятно, что вместо 1024 и 17 - подставить реальные значения.

Comments: 9 (click here to reply)    Tags: Работа


Comments: (add new comment)
(1-9 of 9)
08/02/2005 03:54   nightblade_   reply   thread
А ты в курсе, что диаганаль 17" монитора равна примерно 16.5"? И вообще, у монитора есть понятие величины пиксела, а у развертки число пикселей на дюйм разрешения. У твоей формулы весьма велика погрешность выходит.
08/02/2005 15:02   vladstar   reply   thread
Погрешность 0.5/17/2 =~ 1.5% ни разу не повлияет на результат... (напомню, засекается время реакции, а не точность прорисовки).

Физические характеристики монитора никак не влияют на конкретное разрешение экрана (точнее, лишь определяют его максимально допустимое разрешение). Сколько нужно будет зажечь пикселей при конкретном разрешении - столько монитор и зажжет.
08/02/2005 16:05   nightblade_   reply   thread
Ну так это сантиметр или 12.5% от твоих 12.5см. Если особая точность не важна, то и пох.

Угу, максимальное разрешение и имелось в виду. А у Винды в API можно спросить конкретное для горизонтали:

int GetScreenDPI() {
HDC hdcScreen = GetDC(NULL);
int iDPI = -1; // assume failure
if (hdcScreen) {
iDPI = GetDeviceCaps(hdcScreen, LOGPIXELSX);
ReleaseDC(NULL, hdcScreen);
}
return iDPI;
}
08/02/2005 18:38   vladstar   reply   thread
Ты гонишь... Какой сантиметр, откуда ты его взял ?
1.5% погрешности от 12.5см - это примерно 2 миллиметра.

Там программа, у которой свой язык програмимрования, так что проверить разрешение, увы, так просто не получится. Только задать в переменной.
08/02/2005 18:49   nightblade_   reply   thread
Пол дюйма ~ сантиметр.

Чего, доступа в API нет совсем и внешний колл не сделать? :(
08/03/2005 16:24   vladstar   reply   thread
Совсем. Ограниченный набор функций - и все.
08/03/2005 16:34   nightblade_   reply   thread
Исходников языка тоже нет? Типа, "вещь в себе"? :(
08/02/2005 11:17   emoe   reply   thread
факамака!
08/02/2005 15:02   vladstar   reply   thread
Нифига. Работа !
Name:    E-mail:
Your e-mail is required, but never shown to public, allowed tags: <b><i><u><a><img><blockquote><font>
Message:

Subscribe: No    Replies only    All comments   
Answer:

(1-9 of 9)
Statistics: (last 30 days / total)
Public posts: 0 / 994
Comments: 0 / 2110
Spam comments: 0 / 98

Archive:

Tags:

*Объявления* (11)
Dvd (2)
English (2)
Fundraising (1)
Halloween (1)
How-to (6)
KIA (1)
Lego (2)
Linux (5)
Mazda 6 (4)
Oracle db (1)
Outer Banks (5)
VA Beach (1)
Авто (5)
Алкоголь (1)
Америка (408)
Андрей (151)
Аська (1)
Бензин (1)
Бессонница (2)
Бизнес (1)
Бред (3)
Видео (17)
Винда (2)
Влад (159)
Воспоминания (25)
Генеалогия (3)
Годовщина (3)
Дед (5)
Документы (11)
Дом (49)
Доминикана (5)
Дороги (31)
Досуг (47)
Друзья (27)
Еда (3)
Животные (10)
Заправка (1)
Зима (2)
Знакомство (1)
Игры (24)
Интернет (62)
История (4)
Кино (4)
Книги (6)
Компьютер (3)
Компьютеры (69)
Консульство (6)
Конференция (1)
Кофе (1)
Кроссворд (1)
Кулинария (1)
Лена (44)
Лето (1)
Литература (1)
Лифты (1)
Математика (3)
Машины (73)
Медицина (12)
Мексика (1)
Мичиган (1)
Мозаика (1)
Музыка (13)
Налоги (1)
Новости (9)
Новый год (5)
Ностальгия (2)
Океан (1)
Опрос (1)
Отдых (14)
Отпуск (10)
Паспорт (7)
Полиция (1)
Праздники (91)
Природа (94)
Проблемы (7)
Программирование (7)
Псков (6)
Путешествия (56)
Работа (83)
Радио (1)
Радиоэлектроника (5)
Ремонт (6)
Рисование (1)
Робот вася (1)
Рождество (4)
Россия (38)
Русский язык (1)
Ручки (1)
Сатира (1)
Свадьба (3)
Семья (31)
Синклер (1)
Снег (7)
Сны (1)
Софт (2)
Спорт (11)
Ссылки (9)
Стихи (2)
Телевидение (3)
Телефоны (17)
Тесты (2)
Техническое (2)
Финансы (12)
Флорида (2)
Фотография (30)
Хобби (4)
Чай (1)
Часы (1)
Шахматы (4)
Школа (16)
Шопинг (3)
Электроника (5)
Юмор (39)

000009929
Server OS is powered by FreeBSD - http://www.freebsd.org/