![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Пришла в голову задача - у самого пока идей нет, но я размышляю и предлагаю вам сделать то же самое, по желанию.
Итак, дано: Прямоугольное поле и некоторое количество прямоугольных объектов разных размеров. Требуется - алгоритм размещения этих объектов на поле, отвечающий следующим условиям: 1)прямоугольники не пересекаются 2)прямоугольники можно менять в размере (оставляя неизменными пропорции сторон) - но все на одну и ту же величину (то-есть, если мы один прямоугольник скейлим на 80% от оригинала - все остальные - тоже на 80%) 3)эта величина должна быть максимально возможно близка к 100% (то есть, если такое размещение, при котором менять размеры не придется вообще - существует, то мы выбираем его) если кто сидит под маком и знает, что такое Expose - тот может посмотреть алгоритм в работе у себя на рабочем столе. |
|
|||||
|
4AM Games
|
я бы сделал так.
есть класс отвечающий за отображение этих самых прямоугольников назовем его Rectangle ( для удобства, и большей гибкости, он будет реализовывать интерфейс IResizable). В классе есть методы, setSize(w:Number,h:Number), метод передает параметр специальному менеджеру - ResizeManager. Класс ResizeManager занимаеться вычислениями, этому классу экземпляры IResizable передают желаемые размеры, о ведет просчет, максимально допустимого размери, и увеличивает, на желаемое, или на максимальное(если желаемое больше чем надо) ну я думаю тебе не надо объяснять как считать =)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|