Я работаю со списком прямоугольников и должен проверить, находится ли каждый из них в правильном положении на основе фиксированной шаблона и набора геометрических ограничений. Если роль каждого прямоугольника определяется по указателю % 4.
Эта модуло-4-картинка определяет их ожидаемую пространственную позицию, повторяя каждые 4 элемента в списке.
...
Каждая группа состоит из 4 прямоугольных лиц с последовательными индексами, начинающимися из множества 4 (т.е., индексы 0–3, 4–7, 8–11, etc.). Несмотря на то, что сама роль определяется исключительно по индексу, фактическая позиция прямоугольника, как ожидается, будет визуально соответствовать этой роли (например, прямоугольный прямолинейный взгляд на верхнюю левую в своей группе). < /P>
Последняя группа может содержать менее 4 прямоугольников, если длина списка не делится на 4. Это не рассматривается по ошибке, пока все еще не будет осмотрительно. Это исключение относится только к окончательной группе на основе длины списка ввода. < /P>
шаблон повторяется каждые 4 элемента. Однако прямоугольники в сборе ввода могут быть уже неправильно расположены. Верхний левый прямоугольник помещается там, где должен быть прямоугольный прямоугольник). < /P>
Допустимый диапазон движения каждого прямоугольника определяется не только путем предотвращения прямого перекрытия с соседями, но также и дополнительным правилом:
не должно пересекать линии расширенной оси (x-ax-ax ax ax ax ax. < /P>
horizontal mails): < /p>
horizontal mails). Горизонтально, пока он не пересекает вертикальные граничные линии своих горизонтальных соседей: < /p>
Слева: она не должна пересекать вертикальную линию, простирающуюся от правого края левого соседа. < /p>
Право: не должна пересекать версическую линию, выходящую от левого края правого соседа. (Ось Y):
прямоугольник может двигаться вертикально только до тех пор, пока он не пересекает горизонтальные граничные линии своей вертикальной пары (верхняя /нижняя пара): < /p>
Движение вниз: она не должна пересекать горизонтальную линию, расширяющуюся от верхней части нижней пары. его верхняя пара. < /p>
Другими словами, прямоугольник никогда не должен пересекать воображаемые границы, выравниваемые осью, даже если сами прямоугольники не касаются физически. Ограничение: не может пересечь горизонтальную ось, простирающуюся от края пары.
прямоугольники могут варьироваться по размеру, они не обязаны быть равномерными. Это учитывается в логике: все валидация положения основана на краях и ограничениях, выравниваемых осью (не фиксированными измерениями). Прямоугольник считается недействительным, только если он пересекает расширенные граничные линии соседа, независимо от его размера. < /P>
Я пишу приведенный ниже код. В настоящее время моя функция идентифицирует, когда два прямоугольника нарушают ограничение оси (например, один перекрывает другой вдоль x или y). Но в таких случаях он помечает оба прямоугольника - тот, который остался в правильном положении, и тот, который фактически перемещался в пространство другого. < /P>
Однако это поведение не идеально. Я хотел бы просто пометить прямоугольник, который вторгся в зону оси другого.pastebin.com/64YQM6hA
< /code>
Как я могу улучшить логику, чтобы отметить только ту, которая нарушает шаблон? /> Итак, как я могу изменить свою функцию так, чтобы, когда происходит пересечение оси, он анализирует, какой из двух прямоугольников правильно расположен в соответствии с ожидаемой 4-розовой схемой и координатной планировкой-и затем только отмечает неправильный? Верните индекс того, который фактически нарушил правило, пересекая запрещенное пространство.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... axis-based
Как проверить положения прямоугольника в повторяющейся 4-ролльной компоновке с пространственными ограничениями на основе ⇐ C++
Программы на C++. Форум разработчиков
1749741113
Anonymous
Я работаю со списком прямоугольников и должен проверить, находится ли каждый из них в правильном положении на основе фиксированной шаблона и набора геометрических ограничений. Если роль каждого прямоугольника определяется по указателю % 4.
Эта модуло-4-картинка определяет их ожидаемую пространственную позицию, повторяя каждые 4 элемента в списке.
...
Каждая группа состоит из 4 прямоугольных лиц с последовательными индексами, начинающимися из множества 4 (т.е., индексы 0–3, 4–7, 8–11, etc.). Несмотря на то, что сама роль определяется исключительно по индексу, фактическая позиция прямоугольника, как ожидается, будет визуально соответствовать этой роли (например, прямоугольный прямолинейный взгляд на верхнюю левую в своей группе). < /P>
Последняя группа может содержать менее 4 прямоугольников, если длина списка не делится на 4. Это не рассматривается по ошибке, пока все еще не будет осмотрительно. Это исключение относится только к окончательной группе на основе длины списка ввода. < /P>
шаблон повторяется каждые 4 элемента. Однако прямоугольники в сборе ввода могут быть уже неправильно расположены. Верхний левый прямоугольник помещается там, где должен быть прямоугольный прямоугольник). < /P>
Допустимый диапазон движения каждого прямоугольника определяется не только путем предотвращения прямого перекрытия с соседями, но также и дополнительным правилом:
не должно пересекать линии расширенной оси (x-ax-ax ax ax ax ax. < /P>
horizontal mails): < /p>
horizontal mails). Горизонтально, пока он не пересекает вертикальные граничные линии своих горизонтальных соседей: < /p>
Слева: она не должна пересекать вертикальную линию, простирающуюся от правого края левого соседа. < /p>
Право: не должна пересекать версическую линию, выходящую от левого края правого соседа. (Ось Y):
прямоугольник может двигаться вертикально только до тех пор, пока он не пересекает горизонтальные граничные линии своей вертикальной пары (верхняя /нижняя пара): < /p>
Движение вниз: она не должна пересекать горизонтальную линию, расширяющуюся от верхней части нижней пары. его верхняя пара. < /p>
Другими словами, прямоугольник никогда не должен пересекать воображаемые границы, выравниваемые осью, даже если сами прямоугольники не касаются физически. Ограничение: не может пересечь горизонтальную ось, простирающуюся от края пары.
прямоугольники могут варьироваться по размеру, они не обязаны быть равномерными. Это учитывается в логике: все валидация положения основана на краях и ограничениях, выравниваемых осью (не фиксированными измерениями). Прямоугольник считается недействительным, только если он пересекает расширенные граничные линии соседа, независимо от его размера. < /P>
Я пишу приведенный ниже код. В настоящее время моя функция идентифицирует, когда два прямоугольника нарушают ограничение оси (например, один перекрывает другой вдоль x или y). Но в таких случаях он помечает оба прямоугольника - тот, который остался в правильном положении, и тот, который фактически перемещался в пространство другого. < /P>
Однако это поведение не идеально. Я хотел бы просто пометить прямоугольник, который вторгся в зону оси другого.pastebin.com/64YQM6hA
< /code>
Как я могу улучшить логику, чтобы отметить только ту, которая нарушает шаблон? /> Итак, как я могу изменить свою функцию так, чтобы, когда происходит пересечение оси, он анализирует, какой из двух прямоугольников правильно расположен в соответствии с ожидаемой 4-розовой схемой и координатной планировкой-и затем только отмечает неправильный? Верните индекс того, который фактически нарушил правило, пересекая запрещенное пространство.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79655259/how-to-validate-rectangle-positions-in-a-repeated-4-role-layout-with-axis-based[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия