С Новым годом! Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2

Путь по образцу

03.02.2025, 17:04. Показов 1608. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

Есть "образцовый" путь заданный контейнером точек (x, y, z). Др словами это путь из A в B (первый и последний эл-ты контейнера). Требуется пересчитать его для заданных точек C и D.

Понятно что результат будет не всегда идеальным, но хотелось бы предвидеть возможные проблемы и, по возможности, "подстелить соломки"

Спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2025, 17:04
Ответы с готовыми решениями:

Теория Алгоритмов или Путеводитель по созданию простых и эффективных алгоритмов
Я начинаю изучать язык Си, но в целом представляю, что такое алгоритм; могу написать алгоритм несложной задачи с использованием простых...

поиск путей на графе
поиск путей на графе дан ориентированый граф из 2-50 вершин, где каждому существующему ребру соотвествует рейтинг +-R, ребер...

Просчёт путей
Нужен просчёт путей в трехмерном пространстве. Препятствия делятся на два класса: проходимые и не проходимые. Через проходимые препятсвия...

11
2623 / 1634 / 266
Регистрация: 19.02.2010
Сообщений: 4,339
03.02.2025, 18:42
Цитата Сообщение от Igor3D Посмотреть сообщение
Понятно что результат будет не всегда идеальным
Интересно, без появления и учёта какой-то совершенно новой дополнительной информации (например, о препятствиях или о чём-то ином, мешающем/управляющем проведением любой траектории), что и когда тут может оказаться идеальнее тупой алгебры среднешкольного уровня?
Обычное проецирование отрезка [k,l] на отрезок [m,n], точнее, сдвиг-пересчёт значения координаты q (в т.ч. и не попадающей в исходный отрезок [k,l]) через пропорцию:
https://www.cyberforum.ru/cgi-bin/latex.cgi?q'=m+(q-k)* \frac{n-m}{l-k}
Т.е. независимо от того, в пространстве какой размерности лежат точки - каждая их координата будет обрабатываться по отдельной формуле (не зависящей от значений др.координат).
И пофиг, каким при этом будет контейнер, точнее, каким будет хранение точек/координат в нём (хоть array of structures - хоть structure of arrays) - вычисления для любого варианта могут быть SIMDизированы.
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
03.02.2025, 23:17  [ТС]
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Обычное проецирование отрезка [k,l] на отрезок [m,n],
Это сдвиг + масштаб, но есть еще и поворот, никто не обещал равенство направлений AB и CD. И техничнее оформить все матрицей

И не надо искать развлечений на стороне (бОльшая размерность, SIMD), в рамках тупой алгебры найдется чем заняться
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
05.02.2025, 16:30  [ТС]
Немного "копнем". Навскидку

1. Поворот. Очевидно что 2 неколлинеарных вектора AB и CD задают ось и угол поворота. Но будет ли такой поворот лучшим - неясно, скорее нет. И также очевидно что он не единственный. В общем, с поворотом надо что-то делать

2. А если (A == B) или (C == D)? Др словами юзер (сознательно) хочет разомкнуть/сомкнуть путь. Линейными преобразованиями тут не отделаться, но такого ограничения и не налагалось. Неясно насколько это актуально/полезно, но тупенько запрещать не хотелось бы, юзер туда полезет просто потому что "запретный плод сладок"

3. Вычисление масштаба как отношение длин CD/AB может быть совсем не тем что нужно. Напр AB = 0.1 при bounding box пути = 100х100х100, т.е. путь "похож на замкнутый". CD легко может оказаться 0.01 или 1.0. Вряд ли увеличение/уменьшение в 10 раз устроит, это будет расценено как баг

Ну пока хватит. Да, и что скажет княгиня Марья Алексевна? Надо же скормить условие ИИ
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
07.02.2025, 18:24
Igor3D, для начала определитесь что для вас значит "лучший" ? Если AB и СD - отрезки прямых, то простым вариантом будет линейное преобразование. Если AB это кривая, то тут будут варианты. Начиная от отображения кривой AB на отрезок CD. Можно, как один из множества вариантов, провести прямые AC и BD, найти кратчайшее расстояние между этими (скрещивающимися) прямыми, по этому отрезку кратчайшего расстояния пустить прямую как по образующей, вторым концом эта прямая будет проходить по кривой AB. Тогда и кривая AB, и кривая CD будут лежать на линейчатой поверхности - коноиде. А вообще вариантов отобразить кривую на кривую бесконечно много. Нужны какие-то дополнительные ограничения или условия.
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
07.02.2025, 23:42  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Если AB и СD - отрезки прямых...
Если AB это кривая..
отобразить кривую на кривую...
Зачем запутывать простую вещь? Есть путь "из A в B", нужно отмапить его "из С в D", какое тут "если", все однозначно определено. Да, напрашивается линейное преобразование/матрица, и во многих случаях оно полностью устраивает, напр если путь простая парабола (типа тело брошенное под углом к горизонту) - проблем нет. Но для более хитрых путей возможны сложности (см мой предыдущий пост). Что неудивительно, трансформ построенный на 2 отрезках слишком зависим/неустойчив. Вот я и спрашиваю как их решать и/или какие есть еще.

Или другой, чисто шкурный, подход. Типа "все уже давно написано !" и.т.п. Для данной задачи это наверно так. Но найти готовое решение пока не выходит. Пробовал path (trajectory) remap (transform, (re)fit, (re)scale) - зацепиться не удается, "не то". Никто не хочет показать мастерство гугления?
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
08.02.2025, 09:08
Цитата Сообщение от Igor3D Посмотреть сообщение
зацепиться не удается, "не то".
Так вы не говорите что для вас будет "то". И не объясняете, почему предложенный вариант "не то". Почему, например, трансляция-поворот-масштабирование переводящие точки A, B в C,D вас не устраивает?
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
08.02.2025, 14:29  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Почему, например, трансляция-поворот-масштабирование переводящие точки A, B в C,D вас не устраивает?
Подробный ответ в посте #4 (понимаю что весь топик никто не читает)
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
08.02.2025, 16:21
Igor3D, в 4 посте только рассуждения типа "мне так не нравиться" а почему и что? Что такое, например, "лучший поворот"?
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
08.02.2025, 19:28  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Что такое, например, "лучший поворот"?
Так я этого и не знаю Но вижу возможные проблемы, пример. Путь - простая парабола (стреляет пушечка). Все точки пути лежат в плоскости с нормалью (x1, 0, z1). Не мудрствуя лукаво, создаем матрицу поворота из векторов AB и CD. Нормаль станет (x1, y1, z1), т.е. новая парабола будет "завалена", в худшем случае вообще "уйдет под землю". Отсюда мысль вычислить нормаль к пути/кривой и использовать ее при конструировании поворота (такое вычисление нормали я где-то видел, правда для др целей). Но это неочевидно и вполне заслуживает обсуждения.

И вообще хотелось бы услышать Ваши мысли, свои никуда не убегут. А не разжевывать отчего да почему, толку от этого все равно ноль, если человек думать не хочет - он бесконечно будет петь песни про "плохую задачу", "телепатов" и.т.п.

Да, и "найти готовое" - актуально
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,757
11.02.2025, 11:04
Цитата Сообщение от Igor3D Посмотреть сообщение
Так я этого и не знаю
Если вы сами не знаете что хотите или не можете объяснить, то
что вы от других ожидаете? Какое мне, например, дело будет парабола завалена или нет, если в условии об этом ничего не говориться? Не нравиться заваливание - так просто покрутите заваленную кривую по оси CD, так как вам надо.
0
1966 / 822 / 114
Регистрация: 01.10.2012
Сообщений: 4,792
Записей в блоге: 2
11.02.2025, 17:17  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
Какое мне, например, дело будет парабола завалена или нет, если в условии об этом ничего не говориться? Не нравиться заваливание - так просто покрутите заваленную кривую по оси CD, так как вам надо.
Ну дело такое что юзер начнет орать "не работает" и.т.п. Исправлять придется "нам" (скажем так). А "просто покрутить" - совсем непросто, надо давать UI, обеспечивать опции и.т.п.

Цитата Сообщение от u235 Посмотреть сообщение
Если вы сами не знаете что хотите или не можете объяснить, то что вы от других ожидаете?
Возможно такая логика/подход кажутся безупречным/бесспорным Но задача/работа в том и состоит чтобы придумать алгоритм который бы максимально всех устроил. На что прозрачно намекает стартовый пост.

Да, и не вздумайте спрашивать юзера что ему надо. Нормальный, благожелательный юзер ответит типа "сделай как получится и дай тестануть. Будут мысли как лучше - я тебе скажу". А не благожелательный раззвонит всем типа "а программизд - лох, не знает как делать, ходит спрашивает!"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2025, 17:17
Помогаю со студенческими работами здесь

Найти количество путей коня из одного угла в другой
Шахматный конь должен пройти по клетчатой доске размером N на M клеток из левого верхнего угла в правый нижний. Из каждой клетки есть...

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

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

Алгоритм Флойда-Уоршелла [для нахождения кратчайших путей]
Дан ориентированный взвешенный граф. По его матрице смежности нужно для каждой пары вершин определить, существует кратчайший путь между...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru