Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 3

Прямоугольники на плоскости

11.01.2011, 17:30. Показов 2652. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
 Комментарий модератора 
Объединил аттачи и текст сообщения во втором посте
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2011, 17:30
Ответы с готовыми решениями:

Прога выявляет из точек на плоскости все возможные прямоугольники
Здравствуйте, помогите реализовать в Delphi. Программа написана на паскале. Прога выявляет из точек на плоскости все возможные...

Прямоугольники на плоскости заданы координатами диагоналей. Определить количество фигур, их периметры
Не могу решить задачу: Даны прямоуголники на плоскости, заданные координатами диагоналей(x1,x2,y1,y2, x1<x2, y1<y2) Определить...

Уравнение плоскости и доказательство того, что прямые лежат в одной плоскости
Доказать, что прямые x=2+4t,y=-6t,z=-1-8t. и x=7-6t, y=2+9t, z=12t лежат в одной плоскости и написать уравнение этой плоскости. Не могу...

4
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 3
11.01.2011, 21:10  [ТС]
Здравствуйте! Передо мной стоит задача, которая сводится к взаимному выравниванию между собой прямоугольников на плоскости. Что то наподобие верстки газетных колонок. Исходное расположение задано, необходимо исправить мелкие пересечения, подогнать размеры сходных элементов и провести выравнивание.
Вот некоторые примеры для более ясного понимания задачи (то, что должно получиться):

Произошло взаимное выравнивание между элементами.

Здесь показано приведение размера подобных элементов (красный с зеленым) и последующее выравнивание.

В этом случае четыре квадрата подравниваются относительно друг друга и равномерно распределяются по ширине.

Так же следует учитывать, что при нахождении одних элементов над другими они являются взаимосвязанными, т.е. приведение размеров, выравнивание и избавление от мелких нахлестов происходит между зелеными, а затем уже весь большой синий блок с зелеными внутри принимает участие в общей картине с другими синими блоками.

Такое же как и первое, но более сложное.
Уже долгое время пытаюсь решить данную задачу, придумал и реализовал несколько разных подходов, однако в каждом из них есть недочеты, нет универсальности, а сроки поджимают. У меня уже все мысли закончились, хожу изо дня в день по кругу не приближаясь к результату.
Возможно кто то сталкивался с чем то подобным или «видит» решение? К какому общему типу задач ближе всего эта, возможно я плохо искал и что то уже реализовано? Спасибо!
0
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
14.01.2011, 00:30
какие правила существуют для выравнивания? есть допустимые границы расширения, сжатия объектов?
На рисунках приведены примеры различной сложности. может изначально стоит описать минимально сложную задачу и попробовать решить её?
Для решения потребуются ограничения на работу с объектами.

Добавлено через 12 минут
первое что приходит в голову это минимизировать или даже сводит к нулю пересечения рёбер фигур. то есть если провести прямую по ребру одного прямоугольника и она пересегает грань рядом стоящего. то нужно длибо опустить нижную грань первого прямоугольника или поднять грань второго. соответвенно с ростом количества фигур в разу увеличиваются возможные количества изменений фигур, которые могут порождать подобные не соответсвия по величинам. тут и могут помочь правила не дающие фигурам расползаться на пол экрана, то есть не увиличиваться больш чем на 10 %. что ты вроде таких ограничений
0
0 / 0 / 0
Регистрация: 11.01.2011
Сообщений: 3
14.01.2011, 19:55  [ТС]
Основные правила:
1) не создавать коллизий (ситуаций, когда 1 фигура лежит поверх другой, даже частично)
2) размеры желательно оставлять в предлах 5-10% от первоначальных в обе стороны (+ и -)
3) взаимное расположение тоже не должно меняться
4) при изменении одной из сторо фигуры больше чем на 5% менять пропорционально и другую сторону
Главные задачи:
1) избавиться от существующих коллизий
2) привести размеры подобных элементов (например, несколько прямоугольников в строке с размерами 100*20, 100*22, 98*21 должны стать одинаковыми по 100*21 примерно, если испольовать усреднение)
3) выровнять элементы по сторонам (top, left, bottom, right, middle, center) - как это отображено в примерах.

На данный момент я уже пытаюсь реализовать несколько новых подходов, но если у вас будут любые идеи буду рад их выслушать.
0
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
17.01.2011, 08:18
есть ещё одна теория: принять такие догмы -
1. границы области где располагаются фигуры жёсткие, то есть к ним можно приблизиться а за них перейти нельзя, таким образом первый шаг будет - прижимание всех объектов к, например, верхней границе. - выровняли по верху
2. двигаемся в низ скажем с левого края и ищем первый промежуток между фигурами
3. проводим из этой точки виртуальную границу параллельно верху и пытаемся расширить/сжать фигуры так чтобы они лежали по одну сторону от виртуальной линии (избавляемся от пересечений)
4. если осуществить шаг 3 не возможно передвигаем линию вниз/вверх (потребуется логика определения направления) и повторяем шаг 3.
5. спускаемся до следующего промежутка между фигурами и переходим на шаг 2
6. меняем ось для которой осуществляем выравнивание
7. не исключено что при выравнивании по одной оси несколько пострадает другая ось, но тут можно повторить алгоритм или жёстко зафиксировать положение фигур по одной из оси
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2011, 08:18
Помогаю со студенческими работами здесь

Написать уравнение плоскости, проходящей через точки P и Q и перпендикулярной к заданной плоскости:
P(-1,2,1); Q(3 ,-4 , 2); 2x + 4y - 3z + 5=0.

Найти уравнение плоскости, проходящей через точки и перпендикулярной к плоскости XOY
Найти уравнение плоскости, проходящей через точки M(1;-1;2),N(3;1;-2) и перпендикулярной к плоскости XOY. Помогите, пожалуйста!!!

Написать уравнение плоскости, проходящей через прямую и перпендикулярной к плоскости
2) Написать уравнение плоскости, проходящей через прямую l: x-1/1=y+1/2=z+2/2 и перпендикулярной к плоскости W: 2x+3y-z=4 Спасибо!

Найти касательные плоскости к поверхности, которые параллельны данной плоскости
2) Найти те касательные плоскости к поверхности 4x^2+6y^2+4z^2+4xz-8y-4z+3=0, которые параллельны плоскости x+2y+z=0.

Составить уравнение плоскости, проходящей через точки А и B и перпендикулярной плоскости
Составить уравнение плоскости, проходящей через точки А(-1;-2;0), B(2;5;-1) и перпендикулярной плоскости 2x+3y-z+4=0


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru