Delphi

Delphi rectangle: Rectangle (delphi) — RAD Studio Code Examples

Прямоугольная рама

с квадратным поворотным приводом? — Общий форум

leoke0411

#1

Наша команда обсуждала прямоугольное основание (например, 27 29), но установка поворотного модуля на квадрат 27 27 посередине, чтобы сделать нашего бота более узким, но при этом иметь возможность быстро поворачивать (мы предполагали, что прямоугольное основание с модули по углам замедляли бы вращение, хотя мы еще не проверяли) Какие плюсы и минусы у такой конструкции? Поскольку я никогда не видел, чтобы бот работал с таким подходом. Мы не уверены в его стабильности и возможности подняться на зарядную станцию.

2 лайка

Эрик

, 7:16

#2

Не так уж и неслыханно. Я могу вспомнить пару команд, которые навскидку использовали трансмиссию меньше максимального размера с некоторыми свесами.

Тем не менее, вы говорите о 2 дюймах на относительно небольшой раме. В любом случае, я не думаю, что у вас возникнут такие большие проблемы с поворотом, особенно если учесть, что вы уже используете поворот (который может эффективно понерфить любой поворотный скраб был бы у 6WD)

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

СндМндБди

#3

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

Когда бот примет форму ромба, он сможет очень быстро поворачиваться. Подумайте, рассчитан ли ваш робот на линейную скорость 15 футов в секунду. Ваши колеса сидят на круге диаметром около 76 дюймов и длиной окружности около 20 футов. Таким образом, вы сможете сделать полный оборот примерно за 1,3 секунды, что достаточно быстро.

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

Что касается недостатков переноса ваших модулей от края: у этого есть один очень большой недостаток. Чем меньший прямоугольник образуют ваши колеса, тем больше вероятность того, что ваш робот будет ходить на цыпочках. Если это ваш первый раз, когда вы делаете отклонение, вы должны осознавать этот факт и планировать его. В частности, представьте, что вы едете на полной скорости в одном направлении, а затем ваш водитель быстро поворачивает джойстик на 90 градусов. Это создает большой импульс, который хочет опрокинуть то, что теперь является «боком» колеса. Если у вас есть большая рука или лифт, чтобы решить задачу этого года, и ваш центр тяжести находится довольно высоко, у вас, скорее всего, будет эта проблема. Держите колеса как можно ближе к краю, чтобы смягчить это.

Я уверен, что кто-то может объяснить точную математику, лежащую в основе «неповоротливости», но в конечном счете это определяется несколькими основными факторами:

— Высота центра тяжести (чем выше, тем хуже)
— Горизонтальное расстояние между вашим COG и каждым краем прямоугольника, образованного вашими колесами (чем меньше, тем хуже, поэтому вам нужен большой прямоугольник с примерно центрированным COG).
-Ваше ускорение (чем выше, тем хуже)

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

1 Нравится

15 января 2023 г., 13:55

#4

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

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

Прямоугольник, вписанный в многоугольник

Поиск

С октября 2016 г. Embarcadero предлагает бесплатную версию Дельфы (Дельфы 10.1 Берлинская версия для начинающих). Там есть несколько ограничений, но это долгожданный шаг к тому, чтобы сделать больше программистов знают о прелестях Delphi. Они говорят «Предложение может быть отозвано в любое время», так что не откладывайте, если хотите чтобы проверить это. Пожалуйста, используйте ссылка для обратной связи я знаю, если ссылка перестанет работать.

 

Служба поддержки DFF — Магазин

  используя эту ссылку.

Мы получаем несколько центов с каждого покупка. Спасибо

 


Поддержка DFF — пожертвование

  Если вы пользуетесь веб-сайтом, с точки зрения знания, развлекательная ценность или что-то еще полезное, рассмотрите возможность сделать пожертвование через PayPal , чтобы помочь погасить расходы. (Для пожертвования через кредит не требуется учетная запись PayPal. карты.) Транзакция безопасна.

Менса Daily Puzzlers

Более 15 лет Календари Mensa Page-A-Day предоставляют несколько головоломок в год. для моего удовольствия от программирования. Кодировать «решатели» очень весело, но многие программы также позволяют пользователю решать, удобно для «заполнить в пробелах». Ниже приведены ссылки Amazon на два последних года.

Менса Календарь 365 Puzzlers на 2017 год

Менса Календарь 365 Puzzlers 2018

(Подсказка: если сможете подождите, календари на текущий год обычно продаются в январе.)

Контакты

Обратная связь: Отправить электронная почта с вашими комментариями об этой программе (или что-нибудь еще).

 

 

 

Описание проблемы

Вопрос: «Какой самый большой прямоугольник можно вписать в произвольный заданный простой многоугольник»?

История и методы

Это исследование методов нахождения прямоугольника максимальной площади. которые могут быть вписаны в произвольные вогнутые или выпуклые простые многоугольники. Многоугольники можно определить, щелкнув точки вершины в области изображения или загрузив из текстового файла. Все координаты в этой версии указаны в пикселях на область изображения размером 500 x 500 пикселей.

После определения или загрузки многоугольника стратегия поиска основывается на нахождение полигона максимальной площади из заданной центральной точки. Суд и цикл ошибок последовательно создает прямоугольники с диапазоном углов главной оси (обычно от 0 до 180 градусов) и диапазон соотношения ширины и высоты (обычно с 1 по 5). Параметры могут быть установлены, управляя углом и размером шага отношения и максимальное соотношение для проверки.

Для поиска прямоугольников доступно несколько стратегий. Опции «Стратегии» создают пробные центры прямоугольников, которые затем передаются процедура создания прямоугольника, поиск новых примеров максимальной площади.

Кнопки «Загрузить» и «Сохранить» делают то, что говорят, сохраняя и восстанавливая полигон вершины и информация о максимальном прямоугольнике, если поиск был выполнен. Существуют дополнительные параметры для игнорирования лучшего прямоугольника для определенного полигона. чтобы помочь в оценке конкретных стратегий, и один, чтобы ограничить прямоугольники квадраты (соотношение ширины и высоты установлено на 1,0) .

Примечание. Это незаконченный проект. полируется, как время позволяет.

Примечания программиста:

Можно было бы написать небольшую книгу с описанием кода, написанного до сих пор, однако из-за исследовательского характера программы, задействованной геометрии и временные ограничения, вероятно, лучше отложить подготовку документации до тех пор, пока код превратился в более постоянную форму. Большая часть кода была разрабатываются, находясь «в зоне», что не способствует аккуратной организации, поэтому нужна очистка.

 Тем не менее, с ним интересно играть, наблюдая за различными стратегиями. улучшить результаты, иногда быстро, иногда медленно.

Модуль библиотеки UGeometry был изменен для добавления типа TPolygon и переопределить функцию PolygonArea, чтобы вернуть точку Centroid (центр масс) а также Площадь многоугольника. Модифицированная версия была включены в исходный код, загруженный здесь, и будут добавлены в наш zip-файл DFFLib со следующим обновлением.

Запуск/Изучение программы 

Скачать исполняемый файл
Скачать источник

Предложения по дальнейшим исследованиям

msimagelist> msimagelist> msimagelist> msimagelist> msimagelist> msimagelist>
Автоматизируйте последовательное применение стратегии, чтобы найти лучший прямоугольник.
.Сделайте поиск «умнее», чтобы остановиться, когда нет шансов, что лучшее решение будет найдено с текущим параметры.
Очистка кода
 
   
   
msimagelist>

 

Оригинал: 23 декабря 2015 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *