Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

2 Геометрические задачи

13K
11 июня 2006 года
Lucky_Strike
33 / / 04.06.2006
Доброе время суток, тут две задачки,
у кого-нибудь есть какие нибудь мысли, а можно
и код на Си или Паскале :)


I.

прямоугольная область:

struct sZone { int x, y, w, h; };

имеется инициализированный массив этих структур,
где-то в другом месте программы, скажем такой:

struct sZone A[24];

нужно написать функцию вида:

struct sZone * integra ( struct sZone * A );

которая будет объединять все взаимнопересекающиеся зоны
в одну прямоугольную зону (прямоугольную), а непересекающиеся
оставлять в покое.

возвращать она должна указатель на вектор, содержащий
итоговые непересекающие зоны - результат вышеуказанной деятельности.


II.

написать функцию вида:

struct sZone * cross ( struct sZone * A, struct sZone * B);

которая будет возвращать указатель на зону
пересечения A и B, или ноль, если зоны не
пересекаются друг с дружкой.

Сам ща думаю, но какие то гнилые решения получаются,
а надо максимально быстро. Вроде бы легко, но чето торможу :)
13K
11 июня 2006 года
Lucky_Strike
33 / / 04.06.2006
ВОт что значит четко поставить задачу..) Врубился сам, вторая функция будет использоваться первой, а первая выдавать всего навсего один из 10 вариантов.

Но если кому-то неймётся, то любопытно было б увидеть более хитроумный вариант, если он есть
350
13 июня 2006 года
cheburator
589 / / 01.06.2006
[QUOTE=Lucky_Strike]ВОт что значит четко поставить задачу..) Врубился сам, вторая функция будет использоваться первой, а первая выдавать всего навсего один из 10 вариантов.

Но если кому-то неймётся, то любопытно было б увидеть более хитроумный вариант, если он есть[/QUOTE]
Если не секрет, с какой целью тебе это нужно?
Спрашиваю потому, что я решал подобную задачу, когда писал движок для 2-мерных игр типа стратегий, с целью оптимизации перерисовки экрана.
13K
13 июня 2006 года
Lucky_Strike
33 / / 04.06.2006
Да так.. для движка для 2-мерных игр, с целью оптимизации перерисовки экрана :)

Правда первая (I) задача сюда не относится, а вторую ща использую вовсю у себя в проге.

Говоря не по теме, не хватает еще одной функции для полного счастья, но уже сейчас все побыстрее работает.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог