С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 28.05.2018
Сообщений: 3

Кривая пересечения поверхностей второго порядка

28.05.2018, 23:45. Показов 4862. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Есть задача построить кривую пересечения двух произвольных поверхностей второго порядка, заданных параметрически. Случаи касания и пересечения по нескольким кривым не рассматриваю (пока что). Для примера взял две сферы. Какого-то общепринятого алгоритма нагуглить не удалось, решил делать в лоб. Проблема: есть три уравнения, 4 неизвестных. Как посоветуете это решить?

С клиента приходят строки x1(u, v), y1(u, v), z1(u, v), x2(a, b), y2(a, b), z2(a, b). Распарсиваю их с помощью
Python
1
sympy.parsing.sympy_parser.parse_expr
, соответственно делать с ними могу все, что угодно.

Мои попытки:
Сделать одну из неизвестных "параметром" и решать много систем. Тут такая проблема: символьно с помощью
Python
1
sympy.solve
решается очень долго, численные вещи вроде
Python
1
scipy.optimize.fsolve
уходят не туда, куда нужно.

У меня еще есть ограничения на каждый параметр (например, у сфер один угол в отрезке https://www.cyberforum.ru/cgi-bin/latex.cgi?[0; \pi], второй в https://www.cyberforum.ru/cgi-bin/latex.cgi?[0; 2 \pi]). Есть ли какой-то решатель, куда можно просто в лоб передать 3 уравнения и все ограничения на параметры и он вернет мне все корни? Перепробовал почти все, ничего хорошего не нашел. Или, может, кто-то владеет тайным знанием устойчивого универсального алгоритма для этой цели. Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2018, 23:45
Ответы с готовыми решениями:

Кривые второго порядка. Линия пересечения поверхностей
Задание : нарисовать линию, заданную пересечением двух поверхностей. По условию дана система: x^2+y^2+z^2=4 x^2+y^2-z^2=0 Я привожу...

Построение поверхностей второго порядка в Excele
Помогите пожалуйста построить в Excele двуполостный гиперболоид, заданный уравнением: x^2/a^2+y^2/b^2-z^2/c^2=-1

Кривая второго порядка
Как в MathCad построить график прямой второго порядка?

5
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
29.05.2018, 07:01
Цитата Сообщение от kolya_levch Посмотреть сообщение
Есть задача построить кривую пересечения двух произвольных поверхностей второго порядка
Когда-то решал подобную задачу для случая произвольных поверхностей, но не на питоне.
Наиболее устойчивый алгоритм, сводился к решению методом Эйлера дифференциального уравнения.
Касательный вектор к кривой пересечения ортогонален нормалям обоих поверхностей в каждой точке, следовательно производная кривой - есть просто нормализованное векторное произведение нормалей поверхностей. В результате решения этого уравнения получался набор точек с некоторым шагом. Чтобы решить дифференциальное уравнения нужна начальная точка, ее получение тоже проблема - я, по-моему, искал пересечение одной поверхности с изолинией другой.
В общем и целом задача непростая.
Цитата Сообщение от kolya_levch Посмотреть сообщение
Какого-то общепринятого алгоритма нагуглить не удалось, решил делать в лоб.
Плохо искали, алгоритмов полно. То что, я описал выше, я вычитал в какой-то статье с конференции по компьютерной графике.

Добавлено через 12 минут
Мною описанный алгоритм, только для пересечения. Для случаев касания он работать не будет.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
29.05.2018, 11:39
Цитата Сообщение от kolya_levch Посмотреть сообщение
Какого-то общепринятого алгоритма нагуглить не удалось, решил делать в лоб.
Общепринятого алгоритма чего, двух произвольных поверхностей или двух сфер?
Поверхностей вы и не найдёте. Со сферами должно быть проще, система квадратных уравнений.

Цитата Сообщение от kolya_levch Посмотреть сообщение
Проблема: есть три уравнения, 4 неизвестных. Как посоветуете это решить?
А что вы хотите получить? Ну, предположим, было бы у вас 4 уравнения, вы нашли бы фиксированные значения "неизвестных". Что это значит в геометрическом смысле? Это максимум точка. (А по минимуму - пустое множество, xyz от этих параметров не сойдутся.) Вам нужна точка?
Нет, вам нужна кривая. Кривая задаётся одним параметром.
То есть всё правильно, сходится. Четыре параметра (а не "неизвестных") связаны тремя уравнениями. Одна степерь свободы остаётся. Получается кривая (1d). Меняете параметр - двигаетесь по вашей кривой пересечения.

Как решать - вопрос, да. Зависит от универсальности вашей программы. Если две сферы - так можно и вручную, через геометрию.
0
0 / 0 / 0
Регистрация: 28.05.2018
Сообщений: 3
29.05.2018, 16:38  [ТС]
dondublon, так, а можно поподробнее?
Вот я решил систему из трех уравнений, решение - какие-то функции u(b), v(b), a(b), другими словами я просто все перевыразил через один из четырех параметров (в данном случае через b). И где уравнение кривой? Я что-то туплю, простите.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
29.05.2018, 20:36
u=u(b), v=v(b), a=a(b), x=x1(u, v)=x1(u(b), v(b)), y и z по аналогии. Параметрическое уравнение кривой.
Если правильно решили, то x1 будет =x2 и остальные координаты тоже.
0
0 / 0 / 0
Регистрация: 28.05.2018
Сообщений: 3
29.05.2018, 23:49  [ТС]
dondublon, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2018, 23:49
Помогаю со студенческими работами здесь

Кривая второго порядка....
Помогите решить хоть что нибудь!! Определить вид и расположение кривой второго порядка x^2 - 4y^2 -6x-8y+1=0. Составить уравнение прямой,...

Кривая второго порядка
помогите пожалуйста решить!) x=2y^2-12y+14 1) Привести к каноническому виду. 2) Выяснить какую кривую описывает данное уравнение...

Кривая второго порядка
Начальное уравнение: 4x^2+4y^2+2xy+12x+12y+1=0 σ>0-уравнение эллиптическое. После преобразований,я получаю конечно уравнение: ...

Кривая второго порядка
Как определить тип кривой, по матрице? Вот у меня матрица -31 -36 13 -36 -48 12 13 12 -3 Это может быть 0 -...

кривая второго порядка(парабола)
пожалуйста помогите решить задание!( Дана парабола 4x^2-8x-y+7=0. Найдите координаты фокуса и уравнение директрисы.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru