Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Эксперт по математике/физике
11128 / 7414 / 4008
Регистрация: 14.01.2014
Сообщений: 16,869
16.02.2023, 14:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Worldmaster Посмотреть сообщение
ТС нужен инструмент не для ручного использования наверное а функция которую можно было бы встроить в какое нибудь приложение.
А с маткадом то это как то не так просто получается.
В моём первом посте было указано, что это всё сводится к задаче нелинейного программирования с нелинейной функцией и с линейными ограничениями, где кстати учитываются абсолютно любые случаи вроде пересечения отрезков. Наверняко можно найти готовую функцию и на Си, и на Питоне, и в Вольфраме, и в Maple, где достаточно задать целевую функцию и матрицу линейных ограничений, а не изобретать велосипед!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.02.2023, 14:38
Ответы с готовыми решениями:

Найти расстояние между двумя отрезками
Здравствуйте! Скажите, пожалуйста, как найти расстояние между двумя отрезками? Например, нам дали координаты концов сначала первого, затем...

Кратчайшее расстояние между двумя отрезками на плоскости
Задача в принципе из сборника задач по программированию Юркина Найти расстояние между двумя между двумя произвольно заданными на...

Найти расстояние между двумя скрещивающимися прямыми
Найти расстояние между двумя скрещивающимися прямыми: =b1 и =b2; (прямые заданы векторными произведениями)

28
1976 / 832 / 115
Регистрация: 01.10.2012
Сообщений: 5,052
Записей в блоге: 2
16.02.2023, 15:21
Цитата Сообщение от mathmichel Посмотреть сообщение
Наверняко можно найти готовую функцию и на Си, и на Питоне, и в Вольфраме, и в Maple, где достаточно задать целевую функцию и матрицу линейных ограничений, а не изобретать велосипед!
Такие рекомендации охотно даются другим Ну вот ТС искал, рез-т не так уж плох. Там хороший прием (скаляр / квадрат длины), напрасно ТС его потом выкинул. Но это еще надо осознать/понять, да и до полного решения еще пахать и пахать. Особых преимуществ подхода "найти готовое" здесь не видно
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
16.02.2023, 15:35
Цитата Сообщение от mathmichel Посмотреть сообщение
Наверняко можно найти готовую функцию и на Си, и на Питоне, и в Вольфраме, и в Maple, где достаточно задать целевую функцию и матрицу линейных ограничений, а не изобретать велосипед!
ну берите функцию с маткада что вам выше предоставили и не изобретайте велосипед.
В чем тогда проблема то??


По сути тут все элементарно просто.
Посчитать расстояния между всеми точками отрезков и выбрать минимальное.
Посчитать перпендикуляр до линии.
Выбрать из этих двух значений минимальное. Оно и будет ответом. И не надо ни матриц ни сложных вычислений и подгонок.

Цитата Сообщение от mathmichel Посмотреть сообщение
Наверняко можно найти готовую функцию
Может быть и можно но время затраченное на поиски может быть куда больше чем время на самостоятельное изучение и написание. Сейчас не модно изучать матчасть, все ищут готовое решение.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
16.02.2023, 15:47
Цитата Сообщение от Worldmaster Посмотреть сообщение
Посчитать расстояния между всеми точками отрезков и выбрать минимальное.
Как вам это видится? Вот точек даже не счетное количество - их континуум!

Добавлено через 6 минут
Цитата Сообщение от Igor3D Посмотреть сообщение
идеология "я раб лампы" не всем подходит
Отлично сказано, коллега!
Продолжая метафору, можно людей, которые по каждому чиху предлагают искать готовую реализацию, назвать "прислужниками лампы"
0
 Аватар для Worldmaster
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,263
16.02.2023, 15:55
Цитата Сообщение от Байт Посмотреть сообщение
Как вам это видится? Вот точек даже не счетное количество - их континуум!
Зачем вам континуум то?? Достаточно концы отрезков проверить и найти минимальное, далее просто опустить перпендикуляр.
Математически перпендикуляр это минимальное расстояние.

В итоге получим 5 чисел. Все элементарно.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
16.02.2023, 16:31
Цитата Сообщение от Igor3D Посмотреть сообщение
идеология "я раб лампы" не всем подходит
Отлично сказано, коллега!
Продолжая метафору, можно людей, которые по каждому чиху предлагают искать готовую реализацию, назвать "прислужниками лампы"
Цитата Сообщение от rim41 Посмотреть сообщение
но для меня как для абсолютно нелюбящего математику... Не обессудьте...
Однако, программист должен иметь хотя бы представление о предметной области, которую он моделирует. И если судьба сложилась так, что вам приходится решать задачи по геометрии и на экстремумы, следует хоть немного эту предметную область (в данном случае - нелюбимую математику) освоить.
Я вот тоже не очень люблю бухгалтерию. Однако, пришлось понять основные принципы этой науки. Чтобы не выглядеть полным идиотиком в глазах тех, на кого я работал.
А математика тут простейшая. Все проходят на 1-2 курсах любого технического ВУЗа

Добавлено через 9 минут
Цитата Сообщение от Worldmaster Посмотреть сообщение
Достаточно концы отрезков проверить и найти минимальное
Этого не достаточно
(1, 0) - (2,0) и (0, -1)- (0, 2)
Цитата Сообщение от Worldmaster Посмотреть сообщение
далее просто опустить перпендикуляр
Откуда и куда?
Цитата Сообщение от Worldmaster Посмотреть сообщение
Математически перпендикуляр это минимальное расстояние.
Это доказывается для некоторых фигур (точка и прямая, например). Но определение совсем-совсем другое
Цитата Сообщение от rim41 Посмотреть сообщение
Под расстоянием подразумевается минимальное расстояние между двумя точками, лежащими на отрезках.
0
1976 / 832 / 115
Регистрация: 01.10.2012
Сообщений: 5,052
Записей в блоге: 2
16.02.2023, 16:31
Цитата Сообщение от Worldmaster Посмотреть сообщение
По сути тут все элементарно просто.
Посчитать расстояния между всеми точками отрезков и выбрать минимальное.
Посчитать перпендикуляр до линии.
Выбрать из этих двух значений минимальное. Оно и будет ответом. И не надо ни матриц ни сложных вычислений и подгонок.
Не совсем. Я бы крутил так
C++
1
2
3
4
5
6
7
8
9
float DistLine2Line( const Line & line0, const Line & line1 )
{
  if (LineIntersect(line0, line1)) return 0.0f;
  
  float d1 = std::min(Dist2Line(line0.p0, line1), Dist2Line(line0.p1, line1));
  float d0 = std::min(Dist2Line(line1.p0, line0), Dist2Line(line1.p1, line0));
  
  return std::min(d0, d1);
}
Теперь надо расписывать LineIntersect и Dist2Line. Они тоже должны быть короткими (до 10 строк), но тоже вызывать ф-ции, напр базовые dot и length. Их тоже надо написать. Обычная проблема - недостаток терпения. Человек хочет все и сразу, лезет напрямую к x и y, о выделении ф-ций не заботится. Получается "каша" в которой застряет надолго.

Да, и задание "найти расстояние" не очень-то солидно. С голого расстояния толку немного, вероятно потребуется еще пара точек между которыми это расстояние достигается. Делать ли это сразу (про запас) - проблематично. Но иметь ввиду - надо
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
16.02.2023, 16:36
Цитата Сообщение от Igor3D Посмотреть сообщение
Я бы крутил так
Типа "деления пополам"? Но зачем же нам итерации и приближения, когда есть точные методы. И точки "про запас" в них находятся "по ходу"
0
1976 / 832 / 115
Регистрация: 01.10.2012
Сообщений: 5,052
Записей в блоге: 2
16.02.2023, 16:51
Цитата Сообщение от Байт Посмотреть сообщение
Но зачем же нам итерации и приближения, когда есть точные методы.
Я имел ввиду крутил = делал, никаких итераций не предлагал

Цитата Сообщение от Байт Посмотреть сообщение
И точки "про запас" в них находятся "по ходу"
Находятся, но их надо хранить чтобы выдать мин пару. Лучше сразу подумать как это сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2023, 16:51
Помогаю со студенческими работами здесь

Найти расстояние между двумя параллельными прямыми
Найти расстояние между двумя параллельными прямыми 2x-3y-5=0 2x-3y+21=0 Расстояние между ними это перпендикуляр. Но как его найти? ...

Найти наименьшее расстояние между двумя самолетами
тема мат. анализ Два самолета летят в одной плоскости и прямолинейно под углом 120° с одинаковой скоростью v км/ч. В некоторый момент...

Как обычно ищут расстояние между двумя прямыми
Пишу тут простенькую 3д геометрию. Задался вопросом вычисления расстояния между прямыми. Гугляться формулы отдельно для случая...

Найти вероятность получить определённое расстояние между двумя точками, распределёнными равномерно на отрезке
На відрізку довжиною 15 см випадково ставлять дві точки. Знайдіть ймовірність того, що відстань між цими точками не перевищує 7 см. На...

Доказать, что расстояние между замкнутым и компактным множествами равно расстоянию между двумя точками этих множеств
Даны два множества A и B в R^n, одно из которых компактно, а другое замкнуто. Доказать, что в этих множествах найдутся такие точки a∈A и...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru