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

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

Как определить соотношение ширина/высота? [D7, WinXP]


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

Justin ©   (2011-05-29 17:56:00) 

Помогите пожалуйста вот в чем. К примеру, имеется число 530992. Каким образом можно на основе этого построить прямоугольник с наиболее "наглядным" чтоли соотношением ширины/высоты? Т.е., к примеру, если ширина 862, а высота 616, то приумножении мы и получаем число 530992.
Т.е., конечно же, построить таким образом, чтобы высота получилась 16, а ширина 33187 - это будет не то. Хоть и прямоугольник, но...не знаю как правильно объяснить)) надеюсь, суть уловили.


Inovet   (2011-05-31 22:51:00) [21]

> [16] RWolf ©   (31.05.11 16:18)
> а вовсе не по соображениям наглядности.

Соображения несколько разные у всех
http://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%B1%D1%83%D0%BC%D0%B0%D0%B3%D0%B8


Anatoly Podgoretsky   (2011-05-31 16:37:00) [22]


> W/H=2H/W, с [14] никак не связано...
> <Цитата>

Связана - это магия.

1+1:1.41= 2:1.41 / 1.41 = 1.41:1


Dennis I. Komarov   (2011-05-31 16:32:00) [23]

наврал, как раз оно и есть :)


Dennis I. Komarov   (2011-05-31 16:30:00) [24]

W/H=2H/W, с [14] никак не связано...


Anatoly Podgoretsky   (2011-05-31 16:27:00) [25]

Соотношение (наглядность) при этом не изменяется


Anatoly Podgoretsky   (2011-05-31 16:25:00) [26]

> RWolf  (31.05.2011 16:18:16)  [16]

Так это следствие


RWolf   (2011-05-31 16:18:00) [27]


> при сложении вместе давали Аn+1

n-1, конечно.


RWolf   (2011-05-31 16:18:00) [28]


> Jeer ©   (31.05.11 15:56) [14]

у меня подозрение, что это сделано всего лишь для того, чтобы два листа Аn при сложении вместе давали Аn+1, а вовсе не по соображениям наглядности.


Anatoly Podgoretsky   (2011-05-31 15:59:00) [29]

> Jeer  (31.05.2011 15:56:14)  [14]

1.41 что ли?


Jeer   (2011-05-31 15:56:00) [30]

Насчет критерия "наглядности" - стандартные форматы листов по ГОСТ имеют отношение:

(H/W)^2 = 2
т.е. например
(420/297)^2 = 2


Юрий Зотов   (2011-05-31 15:39:00) [31]

> Justin   (29.05.11 19:50) [5]
> Вот и думаю, что нужно, к примеру, брать изначально за фикс длину (она
> будет равна извлеченному корню), а с высотой играться перебором.

В подобных простейших задачках думать не надо, гораздо проще и быстрее написать решение "в лоб":

procedure TForm1.Button1Click(Sender: TObject);
var
 Z, W, H, I: integer;
begin
 H := 0;
 W := 0;
 Z := StrToInt(Edit1.Text);
 for I := Trunc(Sqrt(Z)) downto 1 do
 begin
   H := I;
   W := Z div H;
   if W * H = Z then
     break
 end;
 ShowMessage(Format('W = %d, H = %d', [W, H]))
end;


oldman   (2011-05-31 12:18:00) [32]


> Dimka Maslov ©   (30.05.11 16:31) [11]


Получим дробные ответы


Dimka Maslov   (2011-05-30 16:31:00) [33]

Решаем систему уравнений
b * h = 530992
b / h = 1.618


Anatoly Podgoretsky   (2011-05-30 11:28:00) [34]

> oldman  (30.05.2011 10:29:09)  [9]

4:5
16:9
16:10


oldman   (2011-05-30 10:29:00) [35]


> прямоугольник с наиболее "наглядным" чтоли соотношением
> ширины/высоты?


3:4?


Inovet   (2011-05-29 20:36:00) [36]

> [7] Justin   (29.05.11 20:23)
> Можно поподробнее

С корнем - это я не подумал. А MBo уже ответил, как надо правильно сделать.

> [1] MBo ©   (29.05.11 18:12)
> Разложить на множители, разобрать их на две группы так,
> чтобы произведения были по возможности близки

Взять ряд простых чисел
1, 3, 5, 7, 11, ...


Justin   (2011-05-29 20:23:00) [37]

>Зачем перебором. Корень к целому и дели площадь на это.

Можно поподробнее для не особо "осведомленных"? :)

>Ты в каком классе?

9-ый закончил :)


Inovet   (2011-05-29 20:06:00) [38]

> [5] Justin   (29.05.11 19:50)
> а с высотой играться перебором.

Зачем перебором. Корень к целому и дели площадь на это. Ты в каком классе?


Justin   (2011-05-29 19:50:00) [39]

>Проще так: "найти множитель, наиболее близкий к квадратному корню из заданного числа".

Да-да, я от этого и отталкиваюсь.
Можно было бы, конечно, вычислить корень и построить таким образом квадрат. Но тогда теряется небольшая часть. Вот и думаю, что нужно, к примеру, брать изначально за фикс длину (она будет равна извлеченному корню), а с высотой играться перебором.


Inovet   (2011-05-29 19:45:00) [40]

> [3] Юрий Зотов ©   (29.05.11 19:05)
> "найти множитель, наиболее близкий к квадратному корню из заданного числа"

У автора наглядность какая-то требуется, может это соотношение близкое к золотому сечению, например.


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

Наверх

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