![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Соотношение сторон.
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