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

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

Соотношение сторон.


Страницы:   1 2

eXAAAXe ©   (2011-06-23 18:21:00) 

привет.
Помогите написать функцию, определяющую соотношение сторон.
мой вариант:


function EqualFloat(const F1, F2: single): boolean;
begin
 Result:= CompareValue(F1, F2) = 0;
end;

function GetAspect(W, H: LongWord): string;
var
 Aspect: single;
begin
 Aspect:= (W / H);
 If EqualFloat(Aspect, 4  / 3)  then Result:= '4x3'      else // 1.33.
 If EqualFloat(Aspect, 5  / 4)  then Result:= '5x4'      else // 1.25.
 If EqualFloat(Aspect, 16 / 9)  then Result:= '16x9'     else // 1.78.
 If EqualFloat(Aspect, 16 / 10) then Result:= '16x10'    else // 1.60.
                                     Result:= 'Unknown';
end;


у меня размеры монитора такие: 41 на 26. (Физические см.)
Т.е. 41 / 26 = 1.58 - функция вернут "Ункнавн".
как узнать соотношение моего монитора?


SQLEXPRESS   (2011-06-24 12:41:00) [21]

и размерность этой матрицы в пикселях.


SQLEXPRESS   (2011-06-24 12:38:00) [22]

не понимаю, какой смысл в этом во всем?
причем размеры монитора, когда гораздо важнее размер пикселя матрицы?


Ega23   (2011-06-24 12:12:00) [23]


> Как переводиться GCD?


http://lmgtfy.com/?q=GCD


eXAAAXe   (2011-06-24 11:57:00) [24]

GetGCD
Как переводиться GCD?


eXAAAXe   (2011-06-24 11:56:00) [25]


> Омлет ©   (24.06.11 08:36) [9]


У меня размеры монитора 41 на 26 см.
Измерял линейкой и брал значения из реестра - цифры одни и те же.

GetAspect возвращает соотношение 41:26 :)
Но такого соотношения нет:
http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0%29

Не подскажите соотношение?


Омлет   (2011-06-24 08:36:00) [26]


function GetGCD(m, n: longword): longword;
var
 p, n1, m1: longword;
begin
 if (n = 0) or (m = 0) then
   Result := 0
 else begin
   if m < n then begin
     n1 := m;
     m1 := n;
   end
   else begin
     n1 := n;
     m1 := m;
   end;
   while n1 > 0 do begin
     p := m1 mod n1;
     m1 := n1;
     n1 := p;
   end;
   Result := m1;
 end;
end;

function GetAspect(w, h: LongWord): string;
var
 nod: longword;
begin
 nod := GetGCD(w, h);
 Result := format('%d:%d', [w div nod, h div nod]);
end;


eXAAAXe   (2011-06-23 22:11:00) [27]


>  Игорь Шевченко ©   (23.06.11 22:02) [7]


Спасибо.


Игорь Шевченко   (2011-06-23 22:02:00) [28]


> Какое это соотношение???


http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0)


eXAAAXe   (2011-06-23 21:58:00) [29]

ok.
перечисляем разрешения через EnumDisplaySettings
функция вернет "Унканвн" для 1280 на 768.

Какое это соотношение???


eXAAAXe   (2011-06-23 21:46:00) [30]


> у тебя неправильный монитор


почему не правильный?
диагональ 19.


Inovet   (2011-06-23 21:17:00) [31]

> [3] CrytoGen   (23.06.11 20:24)
> у тебя неправильный монитор

Линейка резиновая, по вертикали её растягивает притяжением, поэтому мерять надо в невесомости.


CrytoGen   (2011-06-23 20:24:00) [32]

у тебя неправильный монитор


Anatoly Podgoretsky   (2011-06-23 19:21:00) [33]

Формула w/h, у тебя оно 1.58


Ega23   (2011-06-23 18:44:00) [34]


> у меня размеры монитора такие: 41 на 26. (Физические см.


41 - простое число. Так что у тебя соотношение 41х26


Страницы:   1 2

Наверх

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