IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Сортировка фигур
wish
сообщение 21.12.2007, 17:03
Сообщение #1


Пользователь


Группа: Пользователи
Сообщений: 2
Регистрация: 21.12.2007
Пользователь №: 18 459



Всем привет! С наступающим Новым Годом smile.gif
У меня тут такая задачка появилась, требуется запрограммить на Паскале:
Отсортировать геометрические фигуры методом вставки по возрастанию. Размеры фигур создаются рэндомом, собственно как и сама фигура (окружность, прямоугольник или треугольник).
Всё б ничего, но нужно это оформить графически. То есть, если фигуры меняются местами, то они должны "переехать в реальном времени"... Что бы самый простой человек увидел и понял что данные фигуры поменялись местами.
Если у кого-то есть какие-нибудь (даже бредовые) идеи как это воплотить, буду рад услышать!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
afterstep
сообщение 21.12.2007, 18:45
Сообщение #2


Пользователь


Группа: Активисты
Сообщений: 5 336
Регистрация: 14.3.2005
Пользователь №: 2 413



вот сядь, вьірежи из бкмажки фигурьі, и попробуй их посортировать вручную на столе. Методом вставки.
А тогда - опиши тут алгоритм. И дай свои приблизительньіе вьікладки, как бьі ето все написать wink.gif
==
А тут уж - народ поможет wink.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 21.12.2007, 19:34
Сообщение #3


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



Фигуры можно хранить в массиве из записей.
В записи - количество точек и координатым каждой точки фигуры (абсолютные или относительно центра фигуры и координаты абсолютные этого центра тогда)

Про анимацию сделай поиск по форуму Программирование(не только по теории). Например по словам "анимация" и "getimage" или лучше по слову "ядро"


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
afterstep
сообщение 22.12.2007, 9:14
Сообщение #4


Пользователь


Группа: Активисты
Сообщений: 5 336
Регистрация: 14.3.2005
Пользователь №: 2 413



я хотел другое усльішать wink.gif как сотриторовать.
По площади? по длине? по толщине? по периметру?
==
Есть типичная радача - оптимальньій разрез. Ну, например, задано N треугольников всяких и разньіх размеров - разместить их на прямоугольнике так, чтоб они не пересекались, а площадь прямоугольника бьіла наименьшей. Как дополнительное условие - разместить на заданном количестве прямоугольников заданного размера.
==
Но так, как задача ставится в первом посте - она "нерешабельна" - даже не дано начальньіх условий wink.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
PolPoll
сообщение 22.12.2007, 9:26
Сообщение #5


:)


Группа: Главные администраторы
Сообщений: 5 858
Регистрация: 24.11.2005
Из: Москва
Пользователь №: 5 327



А мне в голову сразу почему-то пришла сортировка по количеству углов... biggrin.gif


--------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
wish
сообщение 22.12.2007, 10:58
Сообщение #6


Пользователь


Группа: Пользователи
Сообщений: 2
Регистрация: 21.12.2007
Пользователь №: 18 459



Сортировать нужно по площади фигур.
PolPoll, насчет записи: я поступил немного иначе. Не знаю на сколько это рационально... В общем создал отдельные массивы, каждый из которых хранит определенные данные. Т.е. массив с координатой X правого нижнего угла прямоугольника, с координатой Y, массив с площадью фигуры и т.д. Поскольку я не знаю какая будет допустим третья фигура или пятая(тип фигуры генерится рендомом), то еще создал массив оф чар который хранит букву. Если "с" то прога "понимает" что нужно рисовать окружность, если "r" то прямоугольник(покаместь работаю с 2-мя фигурами, потом планирую добавить трехугольник).
В общем алгоритм у меня такой: если площадь фигуры i > площади (i+1) фигуры, то проверяем массив char и узнаем какая фигура i а какая (i+1). Соответсвенно i сдвигаем вправо графически, а i+1 влево. Обнуляем i,что бы проверка опять начиналась сначала, пока не будут упорядочены все фигуры.Есть одно "но" над которым сейчас работаю. Сдвиг осущевствляется циклическим изменением координат X и прорисовкой объекта заново, что бы это сделать каждый раз нужно очищать экран. Естественно затираются все фигуры кроме сдвигаемой. Думаю прийдется в каждом цыкле "сдвига объекта" прорисовавывать все предыдущие фигуры. Другого выхода пока не вижу))
Вообщем описал как смог, буду действовать по намеченному пути. Опять таки принимаются любые идеи! wink.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 23.5.2012, 3:13